Generate semester dropdown list dynamically

Starts with 2011 and returns every semester since then that has at least one
group associated with that semester.

Cached for better performance.

See #1027. See #977