Dictionary (classes*h) must have unique namespace or/and struct name

The patch does minor cleanups and create unique namespaces based
on package name.

The change is needed for ROOT6 as classes*h files becomes a payload
embedded into ROOT6 dictionary, which is executed in an interpreter
(Cling) during dictionary loading procedure.

Signed-off-by: David Abdurachmanov <David.Abdurachmanov@cern.ch>
Merge pull request #1562 from davidlt/unique-namespaces-for-root6-dicts-v3

ROOT 6 -- Dictionary (classes*h) must have unique namespace or/and struct name.