Introduce view.getUI

getUI is a stable interface to the view ui hash

ViewNoUIDefinitionError is thrown when attempting to access undefined ui elements.
ViewNotYetRenderedError is thrown when attempting to access ui elements before the view has been rendered.
ViewDestroyedError is thrown when attempting to access ui elements after the view has been destroyed.
The jQuery collection matching the ui element selector is returned when the view is live.
After the view has been destroyed, its ui property is set to undefined.

Fixes #2102