use event emitters for async nano operations

I commented the code on the PR
this uses the async library which is already included in fauxton (docs: https://github.com/caolan/async#asyncjs) for control flow.