Use the Git protocol for PropEr

I've had reports that HTTPS seems to fail a bit more often than the Git
URLs. I've seen this before as well so I've gone ahead and switched
protocols for the clone.
Add a distclean target for Make

This runs a `git clean -fxd` to revert to a pristine Git clone.
Add PHONY targets for safety

Just trying to be a bit more thorough in the Makefile targets.
Normalize whitespace in Makefile
Make PropEr a soft dependency

This prevents applications that depend on Jiffy from requiring PropEr as
a dependency just to run Jiffy's full test suite. If you want to run the
full test suite you'll have to run Jiffy's Makefile directly which
creates a `.jiffy.dev` marker that enables the full test suite.
Adjust rebar.config to support rebar v2.0

- Include Windows preprocessor definitions that rebar is missing
- Minor changes to optimisation flags
Remove stray while loop

Apparently I missed this when refactoring a do/while loop into a
standard while loop. It was a harmless extra invocation to check if the
stack was empty.
No longer escape forward slashes

After a few requests and some reflection I've decided to stop escaping
forward slashes in strings while still accepting the escaped version
through the decoder. This appears to mimic the behavior of other popular
JSON libraries I've checked (Ruby and Python).
Remove some old cruft from rebar.config

I must've originally copied this config from Emonk.
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.
Forgot to refactor the roundtrip tests

I removed some columns to try and minimize the amount of test data I'm
requiring and forgot to update the test code.
Turn on compiler optimizations

Because reasons.
Minor change for building on Windows
Fix compilation on GCC 4.8
Prevent segfaults on unterminated strings

A single quote input was causing segfaults due to sneaking past the
string termination logic. This patch corrects that lapse in conditional
by only parsing strings where a closing quote was found. All other
strings are rejected as invalid.

Big thanks to Jean-Charles Campagne (@jccampagne) for reporting the
issue.
Fix typo in utils.h

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
__GNUC__ is a better choice than __GCC__

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>