Renamed AsyncMonad to Async
Improved sequence et al., monad creation

The function monad$ will add the monad methods and functions to a
constructor and its prototype. sequence() and mapM() are now constructor
("class") functions, which can except empty lists.
Async.listen() attaches monadic event listener

The event will create a monadic object that gets run with the same
success and failure callbacks, and the state that is current at the
point where the listener is attached.