WIP: sqlite4-like Ordered encoding scheme

Summary:
More tests are coming once the issues I’ve been running into have been sorted out.
+ This implements the varint encoding method described in http://sqlite.org/src4/doc/trunk/www/varint.wiki
+ This has an incomplete implementation of the key encoding scheme described in
http://sqlite.org/src4/doc/trunk/www/key_encoding.wiki
+ There are some questions within the code, but here are my main issues so far:
- computing the mantissa of a value is running into trouble due to floating point precision
  errors. I reduced the function to be pretty straight forward and would like any help on
  solving those.
- Beyond the errors within the document that have been discussed already, I’m confused about
  what qualifies as a "small" value. From the key_encoding.wiki page:

  "For E less than zero, the value is small."
  "Small positive values are encoded as a single byte 0x16..." <-- HUh?
  "Small negative values are encoded as a single byte 0x14..."

  Am I missing something here?

Test Plan: more to be added.

Reviewers: petermattis, mrtracy, spencerkimball

Reviewed By: spencerkimball

Subscribers: Tobias, team

Differential Revision: http://phabricator.cockroachdb.org/D106