Feature #3089: want ::typedef
libctf should support removing a dynamic type
As part of doing the work for 3089 and trying to support self-referential structures, this forces us to be unable to verify that all types for a struct to be defined until after the basic struct is added itself. Currently all consumers (libdtrace) end up treating a failure of this kind to be a fatal error. In mdb that is not acceptable. To work around this, we introduce a new function, ctf_delete_type(ctf_file_t *, ctf_id_t). Assuming the type has no outstanding references from other types, then it is removed from the list and the container is dirtied. The change will be committed once the container is updated.