[Reviewed] Create a `cache_key` function.

Create a function to simplify the declaration of cache keys.

Combine all the keys necessary for a student into a single view. The `cache_key` method of `StudentData` will build a key using strings and symbols, where the symbols represent cache keys generated by the `membership_calculation` view.

The `membership_calculation` will be expanded to include any calculations that can be performed by PostgreSQL for a particular student for a particular course.

Closes #530.