Arguments as hash

Related to #12

It could be more reliable to pass arguments to the before and after callbacks as a hash. This way, a user wishing to refer to these arguments does not need to rely on the order being correct to access the correct argument. (The order could be unreliable).

@boazsender I did not write any tests; I tried npm install and tried to use grunt to run through the tests, which led to this output:

```
Running "lint:files" (lint) task
Lint free.

Running "qunit:files" (qunit) task
Testing backbone.routefilter.html
events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: spawn ENOENT
    at errnoException (child_process.js:980:11)
    at Process.ChildProcess._handle.onexit (child_process.js:771:34)

```
I figured I would first open the pull request to discuss the merits of this change, and if it's a good change, look into tests after.