Cleaned up and simplified the Blob layer

- removed things that are not in the original python layer
- removed all upload/download methods because the Blob layer does not offer transactional guarantees on very big data
- fail if size is negative
- flow the CancellationToken everywhere
Cleaned up the String Interning layer

- Moved to "FoundationDB.Layers.Interning" namespace
- fixed a few bugs, made it more thread safe
- Added transactionals
- Flow the CancellationToken everywhere
Added a unit test to validate that GetRange([0, 100), limit=1) would conflict with a Set(...) or not, depending on if the result of the GetRange would change or stay the same.
Renamed FdbTuple.Descendants(..) to FdbTuple.ToRange(..)

- Added one overload that takes an IFdbTuple
- Removed DescendantsAndSelf(...)
Cleaned up csproj, enabled XML documentation build on Release
Remove beta warning from readme.
Merge branch 'master' of https://github.com/Doxense/foundationdb-dotnet-client
Be more specific about what is stable.
Added new FoundationDB.Samples assembly for samples an tutorials

- First attempt at porting the Class Scheduling sample from Python
Do not 'prefer 32-bit' because it won't work
Breaking Change 1 of 3: Removed "db.Attempt" subclass, and moved the transactional methods to the db instance itself

- All "db.Attempt.FooAsync(...)" are now "db.FooAsync(...)"
- Simplified the FdbOperationContext object a bit
Breaking Change 2 of 3: Renamed Change() to WriteAsync() and ChangeAsync() to ReadWriteAsync()

- Change() renamed to WriteAsync() because it only take Set or Clear methods (non async)
- ChangeAsync() renamed to ReadWriteAsync() because it could also do Get, GetKey or GetRange (async)
- ReadAsync() is unchanged
Moved ClearRangeAsync(db, subspace) where it belongs, and made it retry on errors
Added/fixed a few XML comments
Disallow moving a directory to a subdirectory of itself
Added an override on FdbOperationContext that takes a non-async Action<...>
Breaking Change 3 of 3: CancellationTokens considered harmful.

- Completely rewritten the cancellation story by removing most optional CancellationToken from methods on FdbTransaction
- Added the IFdbTransactional interface that expose the ReadAsync, WriteAsync and ReadWriteAsync retry methods.
- FdbTransaction instances managed a single CancellationToken that is used internall by all async methods (GetXXX, Commit, OnError, ...)
- App code can get this the token when calling async code by doing "await SomeFileOrSocketIOMethod(..., tr.Token)"
- The Token can be set either by calling BeginTransaction(...) (by default uses the db's token) or by passing it to the transactional methods (ReadAsync, WriteAsync, ReadWriteAsync)
- FdbOperationContext is now embedded inside the transaction instance and can be obtained via "tr.Context"
- Directory Layer: Fixed bug in MoveAsync()
Small cleanup after last refactoring
Merge pull request #11 from ajbeamon/master

Updated Readme.md (remove beta warning)
Removed old async LINQ code that was never finished.

- Select and Where overrides that pass in the index are not easy to do right now, maybe later