Arguments and returns - Not working! For discussion not merging.

Note this is not something for merging currently but a non-functional discussion point based on @chriseidhof's suggestion in https://github.com/duemunk/Async/issues/8. This is very much Async.legacy code and could not be directly merged with Async itself.

I've tried implementing chainable dispatches with arguments and return values being passed down the chain and I think I've defeated the Swift type system as the library compiles but I can't seem to actually call any of the functions. 

If Chris or anyone else can tell me what I'm doing wrong or if it really is Swift's fault I would really appreciate it.