Modified the top-level message MACRO definitions

I want the definition of the messages to be as simple as possible.
I also am trying to eliminate all of the exceptional cases, such as when
you define a dynamic field you must place parentheses around the type
definitions.

I would prefer to only have one field type MACRO, however, this is
nearly impossible with the addition of dynamically sized fields.

Here are the list of MACROS that currently exist to define a Message:

HG_BEGIN_FORMAT:    Starts a message definition
HG_END_FORMAT:       Ends a message definition

HG_DATUM:                 The  most common field definition MACRO. Used
to define fields for fundamental types, bit-fields, and nested
(compound) fields.

HG_ARRAY:                   Defines a fixed-size sequence of items.
HG_DYNAMIC:              Defines a variable-sized sequence of items. The
user can reference a field previously defined in the message to indicate
the number of elements in the dynamic sequence, or a function pointer.
HG_ALLOCATOR:           This MACRO is equivalent to HG_DYNAMIC, except
the user can supply their own STL compliant allocator.