Introduce JSONValue enum

This value helps reduce the complexity of type inference.

This commit also adds a first pass to change JSON decoding operators to
be prefixed instead of infix, and uses function composition instead of
function application.
Fixed case sensitivity for file paths

The Xcode project file contained four cases where lowercase  characters
were incorrectly used in file paths.  This breaks on Mac OS Extended
(Case-sensitive, Journaled) filesystems.
Add files to OS X target and fix build
Clean up JSON operators

- Organize operators for Arrays and Values
- Reduce duplication by reusing single implementation
Use `?` for optional unwrapping

We needed to use `*` for optionals because of limitations in older
versions of Swift. However, with Swift 1.1, we are now able to use `?`
as a character in an operator.
Use infix operators for JSON decoding

Now that we have the JSONValue enum set up, we can go back to using
infix functions for the JSON decoding. This brings us back to the syntax
we started with, and brings us closer to Aeson's syntax.
Use decode function instead of decoder property

This gets rid of the decoder property in favor of the decode function.
This syntax is easier because it means that we don't have to return a
read-only closure for decodable objects, and can define a simple
function instead.
Add JSONValue.find

This function takes an array of keys and returns the nested object from
the JSON value.
Don't ignore decoding errors in arrays

The rest of the system treats JSON decoding errors as fatal, we should
do the same for Arrays. Instead of ignoring decoding errors in the
nested JSON, an error should result in `.None` for the entire array.
Remove unused flatten function