Added FromJSON and ToJSON instances for Data.Tree.

The instances reuse the instance code for tuples.
Try to fix stupid clang cpp incompatibility (gh-154)

--HG--
extra : rebase_source : 4d92fc2b96527581ecba1a9d09e93a2c6ae31682
extra : amend_source : f2b002e759d692bc9bca962484123a7857ebbb02
Bump version to 0.6.2.1
Added tag 0.6.2.1 for changeset 52038e5c0ea3
Merge
Fix eitherDecode functions (gh-142)
Merge pull request #153 from danidiaz/master

Added FromJSON and ToJSON instances for Data.Tree.
Merge
Separate class definitions from instances

--HG--
rename : Data/Aeson/Types/Class.hs => Data/Aeson/Types/Instances.hs
Replace Number with Scientific

Scientific numbers are floating-point numbers with arbitrary precision
that are fast to parse and can be efficiently converted to/from
Fractional numbers like Doubles.
Change encoding of Rational to use full precision
Add cabal.sandbox.config to .gitignore
NaNs and infinite RealFloats are encoded to Null
Refactor the FromJSON instance of Fixed
Merge pull request #156 from basvandijk/scientific

Change Number to Scientific
Merge

--HG--
rename : Data/Aeson/Types/Class.hs => Data/Aeson/Types/Instances.hs
Drop upper bound on scientific
Encode RealFloat numbers using Scientific.fromFloatDigits

The previous code used realToFrac (fromRation . toRational) which
approximates a floating point value. For example:

 > toRational (1.2::Double)
 5404319552844595 % 4503599627370496

If you encode this Rational number to a Scientific number and render it
you get:

 > encode (1.2::Double)
 "1.1999999999999999555910790149937383830547332763671875"

Using Scientific.fromFloatDigits you get the expected:

 > encode (1.2::Double)
 "1.2"
Nicer ToJSON instance from Number and Integer
Depend on scientific >= 0.1