Add JSONException.java class to wrap the different Jackson exceptions as per
Tsuna's request
Refactor the TestJSON unit tests for cleaner code and handle the new exception
class
Add constructors to BadRequestException.java to wrap source exceptions

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Merge remote branch 'remotes/official/next' into next
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
Add HttpQuery.explodeAPIPath() to help API calls strip the /api/v# portion
Add unit tests for HttpQuery.explodeAPIPath()
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
Fix issue in HttpSerializer.formatError where exceptions with null "message"
fields (NullPointerException) were throwing another NPE
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
Merge branch 'next' into next_api_query

Conflicts:
	src/tsd/HttpJsonSerializer.java
Add Timeseries Query validation methods to parse the requested timestamps and aggregators
Add getters/setters to the Timeseries Query classes
Add unit tests for Timeseries Query classes