Directory Layer: refactored internal API to be able to pass read-only transaction to OpenAsync() and TryOpenAsync()

- Similarily to the go and java binding: CreateOrOpenInternalAsync(...) asks for two arguments of type IFdbReadOnlyTransaction and IFdbTransaction, an will only use the latter if it needs to write to the db
Merge branch 'master' of https://github.com/ajbeamon/foundationdb-dotnet-client into binding-tester