Propagate

This is the initial steps to resolve our propagate woes.

The majority of these changes just move the registry to it's own file and makes it a singleton to hold references to widgets and views so it's not holding just widgets anymore.

This is not going to fix all of the cases with propagating. There are still some nuances with getting what you want out of propagation which might be solved by updating the `childWidgetsAndViews` function that now resides in the registry but at this time I haven't changed any of that logic.

I only foresee one poor implication of these changes as they stand now. With propagate working in most of the tab cases there is some redundant show calls occurring because of the explicit calls to show in many tabbedframe instances. This is outside of gloss and I haven't gone through to see where all these extra calls are being made.

@aaronj1335 I'm assuming you'll be reviewing this so after you look at it we should talk about these implication before any merging.