Rewrite module, call cb with errors instead of resp.end

I'm fixing the bug with `http-methods` where it writes
    a 405 response to the http response directly.

It now correctly calls the callback with a 405 error.

I also rewrote the library so that I could
    `require('http-methods/method')` and have less
    complexity to deal with.

The form support is left in place for back compat.

cc @Matt-Esch