Add column timestamp support in MockBase. It will now store values with a
monotonically increasing timestamp or use a timestamp supplied by the
caller. It will return the latest column value in the same way HBase does
by default. Future updates should include support for returning multiple
values. But this is good enough for testing issues like duplicate data
points.

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Add the CliUtils.java class as a private package static class to hold utility
methods common to CLI tools.
Add CliUtils.getDataTableScanner() to get scanner covering a range of metrics
in the main data table.

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Refactor UidManager.java to use the new CliUtils class

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Catch ArrayIndexOutOfBoundsExceptions when parsing a compacted column that is
shorter than it should be from within Internal.extractDataPoints() so that it
makes more sense to the user.

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Add Internal.isFloat convenience method for parsing the qualifier to determine
if the data is an encoded floating point value or not.

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Add the FsckOptions class as a container for all of the possible fsck flags

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Rewrite of the data table fsck command line utility. This supports new
flags and is capable of resolving most issues that would prevent a query
from completing. Support includes:
- Duplicate timestamp resolution (earliest or latest)
- Delete orphaned rows where UIDs cannot be resolved
- Delete unknown objects
- Compact non-compacted rows
- VLE 8 byte integer values
- Delete bad values (that can't be parsed)
- Scan the full data table

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Fix a bug where the floats were looking at the KeyValue qualifier and value
instead of the DP qualifier and value in the Fsck class. And cleanup unused
includes in the unit test.

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>