Adding functions to TH to make CamelCase to under_score easier.

I have noticed in multiple places around hackage that people add
these kinds of functions to get their JSON formatted keys (often
underscore_formatted_strings) out of Haskell's CamelCase data
properties (often withLongStringsOfCAPITALS).

I have also added to the .gitignore those files generated by the new
cabal 1.18 'sandbox' feature.

I have a few outstanding questions:

1) Should these functions live in another module with an isomorphic
inverse function, like `underscoreToCamel`? Like Aeson.Properties?
2) I am at something of a loss as to how to integrate testing into the
suite. I've tested the out at the REPL, but what steps should be
taken to integrate these into QuickCheck?
Per @basvandijk, I've moved all of the logic into a camelTo function.
Fixing a typo.
Adding tests for the camlCase operation.
Fix "incomplete input" from decodeStrictWith
Add -rtsopts to benchmarks
Rewrite arrayValues to be less combinator-driven

This gives us about a 20% performance increase when parsing an
array-heavy input, such as json-data/geometry.json (gh-134).
Factor the arrayValues loop into its own function
Rework objectValues to use commaSeparated

This gives us a further 10% performance improvement when parsing
object-heavy inputs, e.g. json-data/twitter100.json (gh-134).
Simplify objectValues
Make imports more explicit
Check for empty array/object values (oops!)

Well, that was embarrassing - my rewrite wasn't quite as clever as
I thought!

This fix drops peak throughput, but it's still better than it was.
Use symbolic constants more widely, for readability

--HG--
extra : amend_source : ca3adc7f8e317f8db73170b08bc145247fa752ec
Switch to a peek-driven version of value

This drops use of the (<|>) combinator, and greatly reduces the
extent to which we allocate unused thunks. As a result, it improves
both runtime and heap usage significantly.

--HG--
extra : rebase_source : 62bc8759400db5a2bc644f5da3fe19c0d10d5d96
Switch the value' parser away from backtracking
Simplify the value parser

If we've already peeked at a byte, we don't need to check its value
a second time.
Merge branch 'master' of https://github.com/bos/aeson

Conflicts:
	Data/Aeson/Types/Internal.hs
Added data instance to Value
Factor out Hashable instance for Value
Merge pull request #168 from mkscrg/decodeStrict-fix

Fix "incomplete input" from decodeStrictWith