WebSearch: hierarchical facets support
- Changes internal type of filter structure from dictionary to list of tupples (type, key, value) where type can be '+' (limit to), '-' (exclude), or '!' (expand next level).
- Uses itertools to make old style dictionary in blueprint.