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.
I'm not so sure about the `Future.init` anymore.

Shouldn't you write instead:
```hs
mv <- newEmptyMVar
newFuture $ runSomeAsyncLibFunctionWithCallback $ \r -> putMVar a r
fmap mv $ \result -> ...
```