Encode floating point numbers as short as possible

Floating point numbers are no longer encoded as a one to one mapping
of their binary representation, but as short as possible (while still
being acurate). The double-conversion library [1] is used to do the
hard work.

The ECMAScript compatible conversion is used.

[1] https://code.google.com/p/double-conversion/
Check in the double-conversion dependency

While using rebar's dependency management was surprisingly easy it
broke apps that tried to build Jiffy as a dependency due to relative
path #includes.

This also fixes a few other issues. Most notably it removes the use of
the ECMAScript compatible encoding due to JSON's lack of support for +/-
Inf and NaN.
Bug fix for large doubles with a fraction

My truth table was a bit busted for extreme value doubles.
Add tests from double-conversion library

I pulled in a lot of tests from the double-conversion test suite to make
sure we don't accidentally break behavior in the future.