WL-2926 Fetch categories and locations scalably

Currently if you have many meetings in the database it will take a long
time to load the new meeting page because it will trawl all the meetings
to extract the list of available locations and categories.

This commit is Peter Liu's patch for SIGNUP-210 which introduces specific
database queries for locations and categories.

1. https://jira.sakaiproject.org/browse/SIGNUP-210
2. https://jira.sakaiproject.org/secure/attachment/37068/SIGNUP-210_patch_2.txt