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
Hey @megawac - you're going to think I'm crazy, but after thinking about it a bit more I think you brought up a good point about someone overriding `triggerMethod` in a subclass. This is one of those methods that has become so central to how people use Marionette, that I wouldn't be surprised if it's overriden or wrapped in an interesting way.

for that reason, I think it's nice to keep it like this
`this.triggerMethod.apply(this, 'before:remove:region'.concat(arguments));` 

even though, it is :hankey: to look at...