Add methods to UniqueId.java for converting UID byte arrays to hex strings and
vice-versa
Add unit tests for new hex to byte methods

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Add HttpQuery.explodeAPIPath() to help API calls strip the /api/v# portion
Add unit tests for HttpQuery.explodeAPIPath()

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Fix issue in HttpSerializer.formatError where exceptions with null "message"
fields (NullPointerException) were throwing another NPE

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Add UniqueIdRpc for all UID related API calls
Add the /api/uid/assign endpoint to allow assigning UIDs for metrics, tag names and tag values via the HTTP API
Add TestUniqueIdRpc.java for unit testing
Add parseUidAssignV1() and formatUidAssignV1() serializer calls
Closes #79

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Add TSDB.assignUid() to assign UIDs to metric, tagks and tagvs using the caches.
It's also slightly different than UniqueId.getOrCreateId() in that we want to
throw an exception if the UID is already assigned.
Add unit test file for the TSDB class with tests for assignUID(), need more
Set Tags.validateString() public as we'll need it elsewhere

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Merge remote branch 'remotes/official/next' into next