Change log deserializer to be thread safe.

Log deserializer used to re-use a PositionMarker to lower the amount of object
allocation needed for deserialization. However, this was not done in a thread
safe way, which lead to complex errors in high concurrent load. This makes it
thread safe again, and leaves a note about re-visiting approaches for lowering
object allocation.
Merge pull request #2760 from jakewins/2.2-positionmark

Change log deserializer to be thread safe.