(Partly) implement wrappers for instantiations

Teach AbstractMetaBuilder to create wrappers for template instantiation
types. Teach generators to generate valid code for the same.

This is quite half-baked, as type resolution for instantiations is not
yet working (which tends to defeat the purpose). However, a typesystem
defining template instantiation types now generates code which also
compiles (and 'sample' is updated accordingly).

To facilitate code generation, fixedCppTypeName(QString) is now a public
static member of ShibokenGenerator, and is used in quite a few places
that previously only replaced '::'. This is needed as instantiation
wrappers have <>'s in their names that also need to be replaced, and
since the additional substitutions that fixedCppTypeName performs should
be harmless, this way we are using a helper function that already
existed rather than creating a new one for the purpose.

Change-Id: I7d077e89d9c3190e6850c1e04aac23a1f179c33b
Implement type look-up for template instantiatons

Teach translateType() to find and translate template instantiation
types. Teach buildAbstractMetaTypeFromString() how to create
AbstractMetaType's for the same.

This suffices to recognize and translate template instantiation types.
However, since redirection is not yet implemented, and adding methods
directly to the instantiation is not currently working, the wrapped
objects aren't of much use except as opaque handles.

However, this is enough to have at least the start of a meaningful unit
test, and one is accordingly added to 'sample'.

Change-Id: I3aee6ece8ad769a07127ff5fdd67a7af2d05200d
Implement instantiation resolutions

Tweak how we iterate over instantiations to have proper argument
reporting, and to be cleaner and (for the second pass anyway) more
efficient. Implement resolution of template arguments on instantiations.
Implement redirections on template instantiations. Add unit test for
redirections.

Change-Id: I51ac71154cd2e8c2c82e4e1dd6305d90661ceced
Fix adding functions to instantiations

Add the little tiny missing piece of code that broke adding new methods
to a template instantiation type. Add unit test for this.

Change-Id: I4e03805d83669af3b036451845394ca7a5a95276
Test resolution of typedefs of type-templates

Improve type-template test case to test that Shiboken recognizes and
correctly resolves typedefs of type-template instantiations.

Change-Id: I613c3f1938561e8dabb25438616316e314163e7d
Fix container argument resolution corner case

Fix a corner case where type resolution for a container type breaks due
to failing to add the template arguments, due to trailing whitespace
causing resolution of the same to fail. As best I can tell, this only
happens for redirector functions of type-template instantiations inside
of namespaces for which the type-template is also inside of a namespace.

Change-Id: Ie5934bcc03ada92c42df49e255ef6df743f9fac6
Fix scoped resolution of instantiations

Modify AbstractMetaBuilder::translateType, and in particular the
associated helper function findTypeEntryUsingContext, to also find
type-template instantiations within a namespace scope.

Change-Id: Id4408fefcb3f3badfe940f15d0f6adab9edc52a3