Added more info when FdbDirectoryLayer.CreateOrOpenInternalAsync() fail
DirectoryLayer: Started refactoring in preparation of next version (WiP)

- Breaking changes in the API !
- Paths are now specified as a list of (unicode) strings
- Added IFdbDirectory interface (implemented by FdbDirectoryLayer and FdbDirectorySubspace for now)
- the Layer property is now a Slice
Fixed test/sample code broken by the DL refactoring
Fixed case of sln file
Fixed case of csproj files
Added warnings to the FdbStringIntern layer class

- current implementation is not safe when transactions conflicts!
Refactoring of Key Encoders and Subspaces (Breaking Change)

- Added FdbEncoderSubspace<...> that combine a subspace and a key encoder
- Added wrappers that can expose a composite encoder <T1, T2> as a single key encoder <T1>
- Removed the encoding helpers on FdbSubspace, moved to the derived classes
- Update Table, Index and DocumentCollection layer to use the new subspaces
Logging: fixed concurrency bug when interning the keys

- lock the key buffer because multiple threads can use the same transaction concurrently
- use a ConcurrentQueue for the list of commands
Logging: truncate the results of Get/GetRange when they are too big

- Truncate to 160 chars (may change)
Added extension method db.QueryAsync(...)

- execute an async query inside a retry loop, and return the results as a list
- equivalent to ReadAsync(tr => query(tr).ToListAsync())