Bug 1079748 - Implement hierarchy manager

I'm not opposed to change `hierarchyManager._topMost` to `hierarchyManager.topMost` and keep the test intact. but we _should_ be able to cover 100% of the file just by testing the focus cases: sending events and spying on `.focus` methods and calling register/unregister from setup/teardown only.