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

This pull request creates or corrects unique namespaces based on package name.  This fix 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.
This fix is purely technical, so signatures should be bypassed if not signed in a reasonable amount of time.