Don't unload decls came from vtable emission.
Move the restore point before the actual unload, i.e exclusive restore point.

Thus we can handle the cases where libraries are loaded. That case is tricky
because during library's static initialization, header parsing might occur (resulting
in more decls that need to be unloaded). With the exclusive restore point, we
will undo everything up to it, which implicitly will unload the library and
it's friends.
Style.
Implement an interface for file/librarly lookup, given the interpreter and system inc paths.
Library unloading should be the same as file unloading for TCling.
Use the canonical paths to the files/libraries to unload.
Simplify and extend the dynamic library manager.

Now it provides an interface which can lookup library names. It can unload a
library and the implementation of loading and resolving a library name is much
simpler.

The extensions are greatly used by the unloading facilities in cling its users.
Consistent argument names.
Coding convention.
If cling::Value is provided turn result evaluation on.
In cases of nested parsing at execution time, sometimes we need to do LookupFile without current file lexer.