Add TSDB.hbasePutWithRetry from UniqueId so that it can be shared. This will go
away when we add a DAL

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Add TSDB.hbaseAcquireLock() to attempt fetching a lock on a row

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Add UniqueId.getTagPairsFromTSUID() to parse tag pairs from TSUIDs

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Complete the UIDMeta class with storage read and atomic write, delete calls and
object sync
Implement TSMeta with store/fetch code and unit tests

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Implement /api/uid/uidmeta CRUD api calls
Implement /api/uid/tsmeta endpoint CRUD methods

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