[Engine] New partial message buffer implementation based on JSON and Git

- Include BSD 3-clause licensed ServiceStack.Text library for
  JSON serialization / deserialization
- Include GPLv2-only + linking exception licensed libgit2sharp library for
  storing messages in a Git repository
- Added DataContract attributes to MessageModel and related to hint
  the JSON serializer
- Initial partial GitMessageBuffer implementation based on Index
  - Implemented Add() and get_Count()
  - Stage all new messages to Index
  - Commit non-empty Index every 60 seconds
  - Commit on Dispose
[lib/libgit2sharp] Updated for public Index.AddToIndex() and UpdatePhysicalIndex()
[Engine] Implemented MessageDtoModelV1
[Engine-Tests] Added Newtonsoft.Json benchmark
[Engine] Use milli-second precision in MessageModel.Equals()
[Engine] Added Flush() to IMessageBuffer
[Engine] Added GetRange() implementation to MessageBufferBase based on class indexer
[Engine] Fixed GitMessageBuffer.Count
[Engine] Implemented GitMessageBuffer get indexer
[Engine] Implemented GitMessageBuffer.GetEnumerator()
[Engine] Guard log calls with MSGBUF_DEBUG define checks
[Engine] Correctly lock CommitMessage before use
[Engine] Initial JsonMessageBuffer implementation
[Engine] Implemented JsonMessageBuffer.GetRange() and get indexer
[Engine-Tests] Enhanced message buffer test-cases
[Engine-Tests] Added test-cases for JsonMessageBuffer.GetChunkFileName()
[Engine-Tests] Fixed cold MessageBuffer.GetRange() benchmark
[Engine] Guard log calls with LOG4NET define checks
[Engine] Fixed JSON corruption of the latest chunk in JsonMessageBuffer
[Engine-Tests] Enhanced message buffer test-cases