Get declaration of pointee type in declareType()
nuria.lua: Fix Q_DECL_METATYPE for templates with multiple types

i.e. QMap<int, QString> - Now using Q_DECLARE_METATYPE_IMPL() which is
expanded to from Q_DECLARE_METATYPE(). Also passing the argument
through a helper macro to force the preprocessor to treat the argument
as a single one.
Use a VariableDef in MethodDef for 'returnType'
nuria.lua,json.lua: Adapt to method scheme change
Fix declareType() logic for enum and pointer types
Identify const-qualified method arguments
nuria.lua: Always use trampoline for methods expecting a non-const ref
nuria.lua: Suppress warnings about unused arguments
nuria.lua: Turn non-const ref returning methods to ones returning T
Relax method argument type acceptance rules
Export to lua if a 'declareType' has been fully declared in C++
nuria.lua: Handle not fully declared types correctly