Refactor the UID assignment process to be fully asynchronous.
This concludes the migration of the UniqueId code to provide
a completely non-blocking interface.
Modify UniqueId private variable names to conform to the rest of the source.
Fix up UniqueId unit tests for async
Start to convert the write path to be fully async.
We need to resolve the metric and tags asynchronously, so start to adapt
the code around the fast path for writes (not the one used for batch
imports) to expect to know what row to write to asynchronously.
Update to suasync v1.3.3.
Modify Deferred.group() callbacks to include a type due to the async library
template change in 1.3.3.
Make the write path fully asynchronous.

Lookup or create all UIDs asynchronously, which was the last
step required to make the write path truly, fully asynchronous.
Previously the data point itself was written asynchronously,
but if we had a lot of new metrics or tags to create or lookup,
these were happening serially.

The net side effect of this change is that if multiple tags
need to be created for a single data point, they are now all
created concurrently.
Fix TeststTSDB.java and TestTsdbQuery.java for compatability with the new
async read/write path.