cleanup of offset calculations by always using (derived, base) in the interfaces and by explicit naming; also removed a workaround, and this closes ROOT-5781
Fix iterators.
Print all macros instead one by one.
Add --text to diff not only text files and treat all files as text.
Improve and move the implementation of removeMacro.
Improve style.
Improve uncaching of unloaded files.

*Merge PreVisitDecl and PreVisitMacro and rename to CollectFilesToUncache.
*Add FID to the transaction storing the memory buffer file ID caused the
transaction.
Add error recovery and unloading tests.
Cleanup the lookup tables of the first non-transparent parent of an enum constant.
Improve style.
Test enum constant cleanup.
Make members local, so that they will close and flush earlier.
Print out the diff command on found differences.
Build all lookup tables on printing, even if they were unused.
Iterate over the decls in reverse order.
Shouldn't matter for codegen.
Remove redundant code.
This is checked explicitly by store/compare state.
Properly update the template instantiation lists.
Update the clang PP diff.
Wrap a recurring question into an interface: getPointerToGlobalFromJIT().

(cherry picked from commit 0b7973cecb915abd7e0add8b907cec6784a30313)
Interpreter::compileFunction(): compile this function and give me its address.

(cherry picked from commit 04de3a90cddb2718dc263ee104854b5395bfd869)