Make Get() return a Message instance instead of BsonDocument. Seperates id and payload. Also seperates payload from the message handle.
Add some missing doc.
Add streams supoort to messages.
Make GetRandomDouble internal only using internals visible attribute for the tests.