Removed IFdbTransactional overrides on test layers

- IFdbTransactional don't compose very well with each other
- It is better to only expose methods that take IFdb[ReadOnly]Transaction arguments, and use the various retry loops (db.ReadWriteAsync, etc...) to compose one or more layer calls inside the same transaction.
Renamed IFdbTransactional into IFdbRetryable and remove uneeded overrides in the various experimental layers

- See Issue #45 for rationale being the change
- fixed equality check in Optional<T> for value types