Abstract runner

The runner just a simple version of async.series with explict context
binding
As async library is no longer needed it's also been removed from package.json
Change runner to call next when finished
Minor style fixes
Refactor Authorise

Now similar to new Grant style
Swap _this for self
Rename tests to better fit new class names
Don't call done() in final function
Refactor usage pattern

Module provides three middleware, one for granting, one for auth
and one for handling subsequent OAuth errors