[opwig] Implemented md::Type class, used to represent a type in the metadatas (such as return type of a funcion, type of a variable, etc);
Refactored Metadata classes and grammar/parser code to use md::Type instead of strings;
[opwig] Refactored Python/Lua WrapperSpecs to use md::Type and fixed compilation issues;
[opwig] Refactored unit tests to use md::Type;
Bugfix: empty declspecifiers now return invalid Type on type();
Merge branch 'opwig-type-refactor' into dev