ruby: fix export when a nested type got loaded first, and then the parent type
make the destructor of TypeDefinitionPlugin virtual
implement metadata support
fix C++11-related warning
use metadata to store the type's source IDs
fix copy operations for types

The metadata field is a pointer, so we need to make sure that copies
are done properly
tlb: metadata import/export
return the newly created field in addField
tlb: fix argument order in xml parsing exceptions
tlb: make the generated metadata values CDATA blocks

As their content is arbitrary, it makes sure that it won't interfere
with the structure of the XML document itself.
tlb: reload metadata
tlb: use the proper libxml functions to iterate over elements
ruby: shut some warning up
ruby: allow to specifically set the size of the types in Registry#create_*
ruby: metadata support
ruby: use the type creation API in the gccxml parser

Until now, we were generating a XML document that was then
imported into a registry. Replace it by using the create_*
methods
ruby: fix setting source files, and set them for compound fields as well

The id_to_file map is only filled for toplevel types, but we
obviously want to assign file/line information for all types
we are storing in the registry. Extract those instead.

Moreover, we now set the file:line information for compound fields
as well.
ruby: parse documentation blocks and assign them to the 'doc' metadata
keep metadata across the minimal() and merge() registry operations
ruby: display documentation in type pretty-printing