Use deque instead of TObjArray - will get rid of Reader/TObject derivation
int / size_t warning.
Remove TObject inheritance, add class name method, until ClassDefInline exists.
Reorder data members (to reduce padding)
Reduce #includes (outline GetCurrentEntry); upadte (c).
Save only last instance of the second ntuple in test file
Function to Print() any TObject on PROOF cluster
Fix the destruction order now that libCling is separate from libCore.

Since the interpreter implementation (currently TCling) is loaded via
dlopen by libCore, the destruction of its global variable (i.e. in
particular clang's) is scheduled before those in libCore so we need to
schedule the call to the TROOT destructor before that *but* we want to
make sure the memory stay around until libCore itself is unloaded so
that code using gROOT can 'properly' check for validity.

The order of loading for is:
     libCore.so
     libRint.so
     ... anything other library hard linked to the executable ...
     ... for example libEvent
     libCling.so
     ... other libraries like libTree for example ....

and the destruction order is (of course) the reverse.  By default the
unloading of the dictionary, does use the service of the interpreter
... which of course fails if libCling is already unloaded by that
information has not been registered per se.

To solve this problem, we now schedule the destruction of the TROOT
object to happen _just_ before the unloading/destruction of libCling
so that we can maximize the amount of clean-up we can do correctly and
we can still allocate the TROOT object's memory statically.
Tweak the dlopen option for libCling (to RTLD_NOW|RTLD_LOCAL)
CreateCling, DestroyCling -> CreateInterpreter, DestroyInterpreter
Temporarily relax the dlopen flag.

On MacOSX, with the local flag the 'Module' used by cling is missing quite
a few symbols:

root [0] int a = 2;
root [1] a
ExecutionContext: use of undefined symbol '_ZN5cling16ValuePrinterInfoC1EPN5clang4ExprEPNS1_10ASTContextE'!
ExecutionContext: use of undefined symbol '_ZN5cling20valuePrinterInternal13flushToStreamERN4llvm11raw_ostreamERKSs'!
ExecutionContext: use of undefined symbol '_ZN5cling20valuePrinterInternal18printValue_DefaultEPKvRKNS_16ValuePrinterInfoE'!
ExecutionContext: use of undefined symbol '_ZN5cling20valuePrinterInternal17printType_DefaultERKNS_16ValuePrinterInfoE'!
ExecutionContext::executeFunction: symbol '_ZN5cling16ValuePrinterInfoC1EPN5clang4ExprEPNS1_10ASTContextE' unresolved while linking function '_Z15__cling_Un1Qu31v'!
ExecutionContext::executeFunction: symbol '_ZN5cling20valuePrinterInternal13flushToStreamERN4llvm11raw_ostreamERKSs' unresolved while linking function '_Z15__cling_Un1Qu31v'!
ExecutionContext::executeFunction: symbol '_ZN5cling20valuePrinterInternal17printType_DefaultERKNS_16ValuePrinterInfoE' unresolved while linking function '_Z15__cling_Un1Qu31v'!
ExecutionContext::executeFunction: symbol '_ZN5cling20valuePrinterInternal18printValue_DefaultEPKvRKNS_16ValuePrinterInfoE' unresolved while linking function '_Z15__cling_Un1Qu31v'!
root [2] .q
Add null deref ptr transformer, which instruments the llvm::IR to protect user
code at the prompt accidentally dereferencing a null ptr.

Tests coming soon.
Fix the wrong include filename.
Spelling.
It wasn't Baozeng's fault I committed the old instead of the newest patch.
Add proper initialization.