Implement util function split_filter

Splits a sequence in two lists based on a condition
Use split_filter (better performance)
Avoid trailing '?' after facet reset
Better wording for facet removal ("reset" instead of "remove")
Don't display count for disabled facet items
Don't show empty span for invisible badges

Just a litte cosmetics. If all items of a facet are invisible, we still
get a facet header without facet items.
pep8 / typos
fix incorrect comment
Query database for all solr facet tokens in one go

Performance should now the same as before hierarchical entities were
introduced.
Allow facets with exclusive values

As discussed in #97, some facets types can only be assigned exclusively
per entity. This patch allows to define facets as exclusive, and
activates that behavior for Categories and ThumbnailBadges.

The following is different for `exclusive` facets:
 * If a facet is already selected, clicking on another will
automatically deselect the selected.
 * Consequently, the facet item counts are displayed as what will happen
if one clicks on it.
 * Exclusive facets are always displayed.
Do sorted & reverse in one step
typo
indent
Dynamically hide sub-categories

As a side effect, do a more efficient children assignment.
Disallow single top-level categories as facet items

Single top-level categories are used as a vehicle to assign a question
to a parent item in the hierarchical categories case.

This patch identifies this case and disallows their selection as a facet
item.