- Moved MessageType enum into the Message class.
- Added JsonCreator constructors for each Message sub-class
- Added JsonSubTypes to Message (for the Json parser to automatically 
create the appropriate sub-class instance)
- Added decoding in JSONDecoder, and also passing the message container
to the persistence logic thread.
Renamed "JSON" prefixed classes to "Json"
Also change the int values for the SocketStatus enum
Message class is no longer abstract (cannot be if we want to deserialize
a Json message)
Added unit tests for each message type, as well as
JsonMessageDecodingTest, which ensures that we can decode every type of
message
Merge branch 'master' of https://github.com/clascelles/CEG_4912_cerberus_system.git