Tuple refactoring: object[] considered harmful

- Removed subspace.Tuples.EncodeKey(object[]) because it encourages bad practice
- To make up for it, added overloads of EncodeKey, Append that take up to 8 generic types
- Also added a struct tuple with 5 items, because composite keys with 5 items are not infrequent.
- There is no DecodeKey with 6 or more items because there is no generic typed tuple with that many items
Tuple refactoring: trying to reduce the mess with CreateRange, Create, and Wrap

- There are too many variants to create a tuple from an array, so we need to simplifiy
- Testing things with a FdbTuple.FromArray<T> and FromSequence<T>, which should be explicit enough
- Still need to decide what to do between Create and Wrap. If they both stay, one need to imply copying the array, the other simply wrapping the array?