IGNITE-14970 Add basic Java thin client

Implement basic thin client protocol.
The goal of this change is to have a working connection and `Table#insert` + `Table#get` operations with tuples and tuple builders.

New modules:
* `ignite-client-common`: client/server shared logic.
* `ignite-client-handler`: server-side connection handler.
* `ignite-client`: Ignite thin client (depends on `ignite-api`, `ignite-client-common`, `ignite-core`).

Details:
* Use MsgPack for serialization, Netty for network.
* Reuse some of the client-side logic from 2.x: `TcpClientChannel`, `ReliableChannel`, `HostAndPortRange`.

https://cwiki.apache.org/confluence/display/IGNITE/IEP-76+Thin+Client+Protocol+for+Ignite+3.0

Co-authored-by: Andrew V. Mashenkov <AMashenkov@users.noreply.github.com>
80 files changed