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.