Added Partition(T1, T2, T3) override on FdbSubspace and FdbDatabase
Added DebugCounters class (only in DEBUG) that holds handle counters

- useed to track handles allocations and free
Made Slice.Random() helper public

- useful for unit tests
Added FdbOperationContext class and refactored task runners

- Context class holds the state of the operation, retries, and result
- Various db.Attempt(...) overrides create a context an adapt the lambda to the expected type
- attempt GetAsync/SetAsync/ClearAsync methods on FdbTable that make use of that (similar to the @transactional python attribute)
Refactored FdbFuture handling

* Added state flags, separated the "completed" and "disposed" date
- TryCleanup moves the future to the "completed" state where all callbacks/selector state is cleared
- Dispose moves the future to the "disposed" state where everything else is disposed
- Keep track of TrySetXXX messages posted on the thread pool and only cancel the task if nobody has done it yet in dispose
Added prototype "Documents" layer implementation

- Core implematation tries to slice the documents in a generic way
- Test uses a dummy document handler  that uses Json.NET to slice/serialize documents