Trigger method optimizations

This pr adds a special internal function
```js
Marionette._triggerMethod
```

How should I benchmark this. The only benchmark I've used so far is the reported running time of the test-suite. According to `mocha` post these changes the tests run `300ms - 400ms` faster (with a couple extra tests). Note: `triggerMethod` is called 7790 times in the specs

Feel free to reject as this really dirties the code, but I feel it may be worth it for such a hot function
Yeah, but there's a slight disadvantage of in doing so. For the first refactor attempt I just went for maximum perf with minimal api change:

- we can get away without calling `_.rest` whenever `contaxt[methodName]` isn't set in the noEventArgs case (majority of cases yeah?)
- we wouldn't need to concat the event to args for the `context.trigger` part in the `noEventArgs` case

How you want to style this should depend on what you're looking for here I suppose. I'll leave that up to you guys to discuss :)