Rewrite the generic search provider to use prototypes. Increase performance
by utilizing the model service instead of the object service, and use a
simplified method of request queueing.
Search providers return search results as models for domain objects, as the
actual number of max results is enforced by the aggregator, and because the
individual providers store and return the models for their objects already.
This lowers the amount of resources consumed instantiating domain objects, and
also allows the individual search providers to implement function-based
filtering on domain object models, which is beneficial as it allows the search
filtering in the search controller to be done before paginating of results.
Created a search-menu template and corresponding controller.
Moved functions out of SearchController to SearchMenuController.
The two controllers share information through ngModel.
Set up bundle.json so that the search bar could
be a mct-control, but left the control itself
commented out because then CSS styling would not
work due to lack of access to parent elements.
Moved the elasticsearch provider to
platform/persistence/elastic. Then moved
the search aggregator and the generic
provider into a services folder within
the search folder.