Minor API changes

- Added list reverse:
```swift
public func reverse() -> List<A> {
  return self.foldl(flip(List.cons), initial: List())
}
```
- Future and some monoids have `@auto_closure`s now.
- Added Array and Dictionary To / From classes that don't require the other, so you can still `JSONDecode` an array of something that can not be encoded. #69 
- JSON api changes: no longer using the Scala "object" pattern. Instead using class functions for `toJSON`. Please tell me if something is harder to write now.
Promises are pretty inherently mutable; the Futures API should be much more like that of Haskell's `async` package (conceptually, anyway).