WebSearch: restricted record search improvements
- Improves performance when searching restricted records; the retrieval of permitted restricted records is done in constant time with respect to the number of search results.
- The retrieval of permitted restricted records is done following these principles: if a record is both public and restricted, it will be restricted; if a record is restricted via multiple collections, the config variable CFG_WEBSEARCH_VIEWRESTRCOLL_POLICY decides if it should be displayed or not.
- Amends test cases to follow the above principles.
- Adds a new data cacher for holding the complete list of children (regular, virtual, public, restricted) for each collection, for improving the search performance.
- Modifies the display of collection list on the search results page, by adding a more/less view option.