Moved SetReadVersion(), Reset() and OnErrorAsync() from IFdbTransaction to IFdbReadOnlyTransaction

- They are also needed in read-only scenarios.
- calling these methods on a snapshot view of transaction will throw
Added a couple of overloads for the transactional version of GetRangeAsync(...)
Directory Layer: added missing transactional version of ListAsync() that does not take any path
Renamed Fdb.SystemKeys to Fdb.System and made it public.

- will contain methods specialized in dealing with the System keyspace.
Added missing implementation of GetBoundaryKeysAsync() to Fdb.Directory

- Returns list of keys that mark the chunk bundaries inside a specific subspace
- Added helper method  GetChunksAsync(...) (name may change) that will return a list of ranges (usefull to split work into chunks aligned to boundaries)