Moved the message type from message body to header

Having the message type in the body of the message is specific to the JSON
serialization library used in the C# client.  A more generic approach is to
move the type to the header.  The header now contains two new entries,
FullTypeName and TypeName. The message serialization now only happens in the
client producer and consumer.