Fixed issue with enumeration detection

The COMMAND_LONG definition used the enum name in parameter fields (type
float). They were detected as enum, instead of float. The heurisitic for
determining if a field is enum now checks that the type of the field is
no a float.
Fixed modifying existing enums while processing includes
Implemented metadata generation

Instead of generating a ToString method, now metadata for each message
is generated on the class (lazy initialization), so more meaningful
message details can be printed in the client code as needed.