Make enums streamable.
Turn on enum selection.
Add (global) enums to the ROOT PCM.
Handle non-global enums.
Override GetAddress(): there is no need to go through fInfo.
Update comments, eliminate duplicate enums in selection
Modernise code using c++11 syntax

this is not just maquillage: the code becomes much more readable.
Add a new TClass state to describe namespaces w/o interpreter information

this is a fundamental ingredient for the representation of enums in namespaces
in the ROOT typesystem.
In presence of root pcms, such namespaces must be created w/o any interpreter
information.
Make sure that the newly created class has a filled Id map

indeed this map, called fId, is a transient member of the TListOfEnums
class. When a TClass instance is filled with the information present
in a TProtoClass, we have to make sure that this entity is correctly
built.
Add the selected enums to the rootpcm
Allow the constants to be refreshed in case the header is parsed

and they had been previously filled with the information in a rootpcm
Implement a GetAddress method that returns the address of the value data member

this is different from the one of TGlobal which implies the presence of
information in the interpreter. This is done in order to support enum constants
which are created in the ROOT typesystem starting from the information in rootpcms.
*IMPORTANT NOTE*: the type of the enum constant value is Long64_t.
Allow proper bookkeping of enum constants and enums w/o interpreter information
Create in the ROOT typesystem enums and enum constants starting from rootpcms

without the need to parse headers.