ObjectStore.removeComponent unreification.

This commit includes tests to ensure that sub-components are correctly unreified when a parent component is removed from the store. In other words, model view objets registered as observers with the ObjectStore will receive onNamespaceRemoved and onComponentRemoved callbacks for the entire store branch rooted at the component being removed from the store.