More module changes:
* Detect identical functions based on their type (not linkage; there cannot be a conflict in linkage specs for valid C++ code). Write and read the type early.
* Fix definition getter for functions: failed in the case where the canonical decl was the definition.
* Find existing unnamed decls, based on their source location. Unnamed decls are always typed decls (coincientally), so write / read typed decls' source location early. Need to collect all unnamed decls in the existing decl context, possibly traversing linkage spec decl contexts (the only transparent decl contexts that unnamed decls can have).
* For TemplateTypeParamDecls, resolve the type early; the template arg list creation depends on it.

Hide experimental lookup changes, to factor out these "undisputed" changes.


git-svn-id: https://root.cern.ch/svn/root/trunk@48440 27541ba8-7e3a-0410-8455-c3a389f83636