Extract and wrap existing message serialization

Extracted existing message serialization and deserialization into a
single abstraction to allow the serialization strategy to be easily
replaced (in preparation for supporting message versioning)
Initial Message Versioning Support

Implement the initial bits required to support message versioning
including a new IPublishDeclareExchangeStrategy and a new
IMessageSerializationStrategy. Note: Tests are only stubs ...
Clean up and add tests

Cleaned up the versioning code, extracted some additional functionality
into separate types, added unit tests and fixed a few bugs.
Extract and wrap existing message serialization

Extracted existing message serialization and deserialization into a
single abstraction to allow the serialization strategy to be easily
replaced (in preparation for supporting message versioning)
Initial Message Versioning Support

Implement the initial bits required to support message versioning
including a new IPublishDeclareExchangeStrategy and a new
IMessageSerializationStrategy. Note: Tests are only stubs ...
Clean up and add tests

Cleaned up the versioning code, extracted some additional functionality
into separate types, added unit tests and fixed a few bugs.
Updated MessageVersionSupport with latest changes from upstream.
Enable automatic service recovery

When the service stops due to an error, automatically restart it after a
minute.
Merge pull request #215 from Fydon/master

Enable automatic service recovery
Change ExchangeType.Header to "headers"
Formatting fixes

Tabs to spaces and removed underscores.
Updated version number
Merge pull request #216 from csamak/master

Change ExchangeType.Header to "headers"
update mongodb driver version
Merge pull request #214 from randomcodenz/MessageVersionSupport

Message version support
Merge pull request #217 from Pliner/master

update mongodb driver version