Cleaned up UnmanagedLibrary helper
IFdbReadOnlyDatabase should also be IDisposable
Added database and transaction filters, merged IFdbDatabase and IFdbReadOnlyDatabase into a single interface

- Removed the notion of IFdbReadOnlyDatabase to simplify writing filters.
- Added IsReadOnly property on IFdbDatabase, and added a way to open a db in readonly mode, transactions created from a read-only database will always be read only.
- Simplified BeginTransaction and added FdbTransactionMode flags to specify read-only and other future settings
- Refactored FdbDatabasePartition to be a database filter (that adds the DirectoryLayer property)
- The FdbTransaction class should not be visible anymore, and only used as an IFdbTransaction or IFdbReadOnlyTransaction
- Temp hack to fix unit tests that test the innards of an FdbTransaction instance.
Removed CreateOrOpenAsync(..., params string[]) extension methods

- they conflict with the methods on FdbDirectoryPartition
- there is no way to pass in a CancellationToken due to the 'params' keyword
Added two simple prototype filters

- ReadOnlyTransactionFilter force a writeable transaction to be read-only, couple with the "tr.AsReadOnly()" extension method
- PrefixRewriterTransaction: prototype filter that will add/remove a prefix to all keys to/from the db. (probably broken!)
First prototype of a Logging fransaction filter (Work in Progress)

- records all operations performed on a transaction (set, get, getrange, commit)
- currently not all commands are implemented
Forgot to store the transaction mode in the context
Added FdbFuture<T>.Clear() that calls into fdb_future_release_memory(...)

- We don't use it ourselves, but someone may need it...
Removed unused method Fdb.Errors.EndKeyOfRangeCannotBeLessThanBeginKey()
Aligned ClearRange, GetRange and GetRangeAsync methods to take both begin and end parameters.

- Swaped the overloads that take FdbKeyRange or FdbKeySelectorPair into extension methods
- Updated FdbRangeQuery to store both key selectors separately.
Added GetRangeCommand in logging transaction filter