Failing test for negative timestamps

add failing test observed in production for negative timestamp values
WIP comparator that handles negative values.

Uses the extractFrom() nate wrote to turn a ByteBuffer into a long.

**Note:** Added failing tests, not sure if it's failing because the
test is wrong or because the code is wrong.

these tests in testSimple fail

assertTrue("aaron5", 0 > DatumType.instance.compare(ByteBufferUtil.bytes("foo~-123"), ByteBufferUtil.bytes("foo~123")));
assertTrue("aaron6", 0 < DatumType.instance.compare(ByteBufferUtil.bytes("foo~123"), ByteBufferUtil.bytes("foo~-123")));
made tests for negative more consistent
Revert "made tests for negative more consistent"

This reverts commit a23f19942378d2293c899dbb8548736c9d43ec6f.

negative values should be treated as invalid
Revert "WIP comparator that handles negative values."

This reverts commit 5c78d9cf685f9433436513fc7cde84e96c1b2c41.

negative values should be treated as invalid
negative long values are invalid timestamps

The regex pattern match for ^\d+$ made negative timestamps like ~-123
invalid, updated direct compare to do that.

Also dropped back to direct byte buffer compare for timestamps because
we know there will be no negative values.

Added tests for negative timestamps, including some from production data
that were failing. Tests pass with regex and direct compares.

Tested compaction locally on data files from production that were failing,
now work with these changes.
Merge pull request #3 from thelastpickle/zero-copy-TLP

Treat negative timestamps as invalid