Fix ROOT-4786.

We introduce another map which contains the libraries for the first template.
Thus will allow sema to pull in the template definition and later on (when
we implement the proper callback) it will deserialize the concrete template
instantiation and load the concrete library.
Move the definition of P next to the others
The PP.LookAhead(0) changes the state of the PP so we need to recover too.
Surprisingly enough, we are autoloading error-free.
Add clarification comment.
Add a better way of checking whether it is a templated autoload entry.

The problem with PP::LookAhead is that it starts reading sometimes one token
ahead and then its cache is rewritten, but its lexer possition is not changed.
Silence a warning.
Cleanup.
Add support for Interpreter::declare in the rootmap files.

When we autoload sometimes is necessary to forward declare some entities (eg.
templates). This can be done now within the rootmap file by using: Declare.non-space-containing-string.
Before generating a template instantiation check if we can get externally.

This is useful when we have template specializations/instantiations in rootmap
files. This means that the template specialization has to be loaded from the
given library and not automatically generated by the template instantiatior.
Add the the change in clang as a patch, for bookkeeping reasons.
Propagate the new callback to our InterpreterCallbacks interface.
Implement autoloading of templates. ROOT-4786
Remove unused code.
Fix doxygen warning.