The PR adds the support of vmselect RPC to vmsingle.
- The RPC server was copied from cluster branch as is and is disabled by
default. To enable, users must provide the listen address explicitly via
`-vmselectAddr` flag.
- Users must also specify which accountID and projectID the vmsingle
data corresponds to. To do this, `-accountID` and `-projectID` flags. By
default, these flags are 0. So the default tenantID is `"0:0"`.
Copying RPC server from cluster branch also required copying its
dependencies:
- Code located in `lib/handshake` (copied as is)
- Some parts of `SearchQuery` type from `lib/storage/search.go`.
The entire API surface is tested with an app test.
Implements https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4328
Signed-off-by: Artem Fetishev <rtm@victoriametrics.com>