#2 Refactored DebugOnlyFileDataStore to FileOptimisticDataStore

Implemented optimistic write data store, with an exclusive file acces
strategy.
Reads and writes have a retry policy when the file is being used by
another process (retry count is exposed as a property).
NUnit tests were implemented as well.