Add inout NSError parameter to map and andThen

This change introduces a way to fail from futures created due to
map or andThen. In Scala, we can just throw an exception, but we
need a way to handle this in Swift.

Unfortunately, I think we are going to have to pass the inout
parameter every time. I tried overloading the function, but you
get weird errors if you don't explicitly type your closures even
for the version without the inout parameter. It's a necessary evil.

Depends on #1 and #2