IGNITE-15361 Thin 3.0: Add KeyValueBinaryView (#328)

* Implement `KeyValueBinaryView` for Java thin client (`ignite.tables().table(..).kvView()`).
* Update protocol: return only value columns of the tuple when the key is known. For example, `TUPLE_GET` passes the key to the server, and server used to return full tuple: key and value columns. It is not necessary to pass the key back, and the server won't do that anymore.
* On the protocol and server levels there is no difference between `Table` and `KvView` APIs - the same operations are used for both. The difference is only on the client side - `Table` returns all columns in a single `Tuple`, and `KvView` splits key/val columns into separate `Tuple`s.
67 files changed