HBASE-8201 OrderedBytes provides order-preserving serialization

WIP Commit. OrderedBytes provides a serialization format in which the
resulting byte[] retain the same sort order as their natural types.
Additionally, serialized formats can be inspected and decoded without
forward knowledge of their content. Implementations are provided for
Numeric values with up to 64-bits of precision, Strings, and byte[].

The encoding format is modeled after the SQLite4 key encoding format.
See http://sqlite.org/src4/doc/trunk/www/key_encoding.wiki for
details.

TODOs include:
 - descending sort order
 - encoding and decoding sequences of values ("compound rowkey")
 - bounds/error checking with String encoding
 - support for "mid" blob encoding and decoding, allowing byte[] to be
   used in the middle of compound keys.
 - utilities for counting, skipping encoded values on a ByteBuffer