Fixed faulty transaction retry logic

- Mixup in the extension handler code
- OnErrorAsync would always fail immediately because it is called with m_state == FAILED
- When fdb_transcation_on_error succeeds, the transaction instance can be reused (no need to create a new one)
Changed Slice.FromInt32 and FromInt64 encoding from big-endian to little-endian

- In order to easily match atomic operations, encoding of 32-bit and 64-bit values in slices has been changed to Little Endian (smallest bits first)
- Changed .ToInt32(), ToInt64() and ToUInt64() accordingly to decode in little endian
- Added FromFixed32(), FromFixed64() and FromFixedU64() that will always return a 4-byte / 8-byte slice
- Added unit tests
- This is a breaking change for values previously stored in the db (if they are > 255)
Added FdbTransaction.Atomic(...) to perform atomic operations on keys

- FdbTrransaction.Atomic(key, param, operationType)
- Added extension methods AtomicAnd, AtomicOr, AtomicXor and AtomicAdd
- Added unit tests