Added helper methods on Slice, SliceReader and SliceWriter to work with 16 bit int

- Slice.ToInt16() and Slice.ToUInt16()
- SliceWriter.WriteFixed16() and SliceWriter.WriteVarint16()
- SliceReader.ReadFixed16() and SliceReader.ReadVarint16()
- note: ReadVarint should be refactored to take an expected max number of bits and throw if the value does not fit
Tuples: added FdbTuple.UnpackFirst<T>(...)

- Similar to UnpackLast<T> in that it only does work to decode the first item of a potentially long tuple