Adds onAttach triggerMethod.

Adds `triggerAttach` and `beforeTriggerAttach` triggerMethods.

This is the 3rd out of 3 PRs to get #1886 in.
couple things:
1. `_getNestedViews` is technically not a private function if region or others will call into it. ergo `view.getNestedViews()`
2. maybe move `displayedViews = _.union([view], _.result(view, '_getNestedViews') || []);` to a private method `_getDisplayedViews`. Why, well it's duped and the idea that some views don't have `_getNestedViews` and we're unioning and shit is complicated. I'd prefer to encapsulate this in a function, document it, and forget about it :)