CancellationToken refactoring : BREAKING CHANGE

- No more optional cancellation tokens (too dangerous!)
- Any async operation that may timeout or loop infinitely must be passed explicitely a CancellationToken
- Users can still pass CancellationToken.None, but then they should think very hard on the consequences in case of timeout/deadlock
- Added a commond FdbTest class that helps dealing with the CTs in the unit tests
- Renamed a few publicly visible 'ct' into 'cancellationtoken' (may have missed a few)
- Work in progress !
Added helper method Slice.JoinBytes()

- equivalent of Slice.Join(...) but returns a byte[] array with the proper size
- tweaked Slice.Join() to also allocate a buffer with the exact size of the result
Cancellation [Breaking Change] : Renamed IFdbTransaction.Token property to IFdbTransaction.Cancellation

- "'token" is an ambiguous keyword that can have a different meaning in most applications (security, full text search, parsing, ...)
- "tr.Cancellation" is self explanatory
FdbTransaction does not implement IFdbTransactional anymore

- renamed all "dbOrTrans" arguments to "db"
Tweaked Slice.ToAsciiOrHexaString() to better handle JSON or UTF-8 strings
Fdb.System: moved GetCoordinatorsAsync() and GetConfigParameter() to the Fdb.System class, added Fdb.System.GetStorageEngineModeAsync()
AsyncLinq: fixed bug in AsyncTransformQueue (used by SelectAsync) that would drop items that arrive when the queue is full and all the tasks are still pending

- OnNextAsync(...) needs to retry when the queue is full
DirectoryLayer: fixed tests because empty of whitespace folder names are now allowed
Removed hardcoded cluster file in memory store test that was preventing tests from running
Tuples: [POTENTIALLY BREAKING CHANGE] fixed behaviour of tuple[from, to] helper to match with Python, where 'to' is EXCLUDED

- Previous implemented treated the 'to' offset as included, which is not how it works in python: tuple[0, -1] now removes the last item, while before it was returning the whole tuple.
- Renamed from/to, into "fromIncluded"/"toExcluded" to remove the ambiguity in the API.
- Most tests seem to pass. If your tuples start returning one item less than before, this is probably because of this commit. Sorry ! :)
- Replaced FdbSubspaceTuple by FdbPrefixedTuple which only holds onto the binary key, and not the subspace itself.