Adds onAttach event.

Mmk, this is ready for review.

- Works properly for infinitely nested LayoutViews
- Also works on collectionViews
- Documented
- Backwards compatible

This adds `onAttach`. Ref #1856 for more about why this event is important.

====

To do: It adds three new public methods that need documentation

- triggerAttach (view). This should prob. just be private
- getNestedViews (layoutView)
- isNodeAttached

I'll do this once I get thumbs on the implementation.
Looking at this a second time. I think there's a worse problem with this method, when the nested view is an instance of `CollectionView`. 

Consider `parentLV`, and instance of `LayoutView` with 2 regions. On region 1 we have `childLV` (another `LayoutView`) and `childCV` (a `CollectionView`). The array returned by `parentLV.getNestedViews` will contain the nested views from the `childLV`, but will not contain `childCV` nor the eventual child views of `childCV` (because `CollectionView` doesn't have the `getNestedViews` method).

I would expect that array to have both `childCV` and its child views, to be consistent with the `LayoutView` case.