Fix late resolution of instantiation arguments

Modify ShibokenGenerator::buildAbstractMetaTypeFromString to
canonicalize type names before trying to look up instantiations. Move
canonicalization function to AbstractMetaClass, and use when returning
the name of template instantiation classes.

This should ensure that everyone is looking at the same form of the type
name. This fixes a crash or assertion (depending on whether the type
appears by itself, or as a template type in a container-type) due to
failure to look up the type when it is used in code snippets.

Change-Id: Ic090138a9db9a3acbbd93a9015e07a9504080fd4
Reject container types with unknown arguments

Modify ShibokenGenerator::buildAbstractMetaTypeFromString to explicitly
reject container types if resolution of a template argument type fails.
This prevents us crashing later due to the type having an instantiation
type that is null. (We still exit abnormally, but at least now there is
a useful error message as to why.)

Change-Id: Ief704a7f9d1f50867fc904a5c397435136af9017
Merge branch 'improve-template-support' into smtk-head

* improve-template-support:
  Reject container types with unknown arguments
  Fix late resolution of instantiation arguments