Merge in IMOS hierarchical facets changes and update to use spring dependency injection

This pull request includes hierarchical facets merge and update to use spring dependency injection as previous pull request for hierarchical facets merge has not been merged.
Just a question, why do we have these public getters here? The functionality in the above private getters is used only in this class