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
alright - correct me if some of my assumptions are wrong, but it looks like you're trying to hande the scenario where the anonymous function receives two arguments, the context and an array where the first item is the event...

If that's the case, then I think it'd be clean to assign `args` here to the arguments. `args = _.rest(event)`. Then below, we don't need to do the `noEventArg` ternary... it should just follow that:

`reult = method.apply(context,  args)`

and 

```js
if (args.length > 1) { 
  context.trigger.apply(context, event, args);
} else {
  context.trigger(event);
```