Subspaces: removed the IFdbSubspace interface (not used), moved most of the non-essential methods of FdbSubspace into extension methods, and cleaned up the API

* FdbSubspace only has the base methods (Key, Contains, Concat, Extract, ToRange, ...)
* All others helper methods (and overrides) are now extensions methods (some may be moved back as member methods if needed)
* Removed Merge(...) that was a duplicate of ConcatRange(...)
* Renamed Append(object[]) into AppendBoxed(object[])
* FdbSubspace now implements IEquatable<FdbSubspace> and IComparable<FdbSubspace>
* FdbDatabase (and filters) now implements IFdbKey instead of IFdbSubspace
* Added missing overrides to some methods, fixed comments, ...
* Added warnings where we have "params object[] ..." because it can be dangerous
* The changes should be source-compatible, except subspace.Merge(...) that must be changed to subspace.ConcatRange(...)
Ingore the *.ide/ subfolder created by the Roslyn compiler
Slice.FromVarint16() should call WriteVarint16 now that it exists
Directory Layer: fixed bugs in MoveTo and Remove that preventing renaming or deleting a root partition

- partition.MoveToAsync("new_name") should rename a partition using its parent DirectoryLayer, same for TryMoveToAsync()
- partition.RemoveAsync() should remove a partition from its parent DirectoryLayer, same for TryRemoveAsync()
- added unit tests to verify this
- added missing version of IFdbDirectory.ListAsync(IFdbReadOnlyTransaction) that does not take a path
Merge branch 'master' of https://github.com/ajbeamon/foundationdb-dotnet-client into binding-tester