Keep a set of .so handles without creating a llvm::sys::DynamicLibarary for each

Symbol lookup happens through dlsym(0).
Handle 0, i.e. the program image, is the only DynamicLibrary that is created.
Now that we have but one DynamicLibrary ("0") we can remove out patch.
Patch not needed anymore; we only open one DynamicLibrary (0, the process).
Add interface for creating a DyLib from an existing handle.
Add an interface for the ExecutionEngine to look at a RTLD_LOCAL library.
Make static; ROOT must call it before cling::Interpreter is created.
Nobody but I sees dlsym handles const :-) Give in.
Forward libCling handle to cling::Interpreter for symbol resolution.
Implement cling (clang) internal state verification.

There are cases where cling needs to 'rollback' its state to a previous one.
Examples for that are cling's error recovery and code unloading. This can become
easily tricky to implement. One step reducing the complexity is the verification
of the 'interesting' data structures.

Implement .storeState and .compareState commands, which dump the internal compiler
data structures like AST (implemented), included files (in progress) and lookup
tables (unimplemented yet). The information is dumped into a file and then that
file is diff-ed to the one taken with .compareState. If they were identical all
files are deleted otherwise a .diff file with the differences remains for debug.
Instrument the error recovery testsuite with .store- and .compare- State.

Add a special lit substitution giving us the executed test folder, so that
before next run we could cleanup.
We don't need the the members and the accessors.