Fix ROOT-5714: Allow Split dictionaries

It is now possible to split dictionaries like in ROOT5, allowing to
decouple (i.e. to compile in two separated, well defined shared
libraries) implementations of classes enriched a ClassDef and their
dictionaries for interactivity.
It was not just a matter to add a switch, but really to refactor
quite some code to accomodate the flexibility needed for this new
type of dictionaries.
Now the std::ostream object is percolated to all the functions which
need it as an argument passed by reference: no globals were used.
Remove now unnecessary code.
NO dreadful using namespacs in headers!
Remove unintended c++11 feature

std::ofstream can be initialised with a std::string only starting from
c++11.
Protect against Null type.
Do not pull STL I/O dicts into the PCH.
Add option to disable rollback. Handle missing ExecEngine.
No need to rool back in case of errors.