Move browse grouping logic from display views to BrowseEngine library

This has a couple of advantages:
a) Less redundant code
b) We can get the grouped facets from the library in other components of the software (for example web services)

So far I tested this by hand with some real-world data with stand-alone browses as well as searches which are then filtered by browse criteria for all 3 group modes (none, alphabetical, hierarchical). Seems to work okay.

What remains to be tested is how this works out with the old views, i.e. if we merge this to Pawtucket. I tried not to modify the controller code or anything "below" but it couldn't be completely avoided. Should work out okay though ....