Add support for push notifications to our Android app

These are push notifications for class seat openings, similar to http://uw.coursealerts.ca/.

Uses Google Cloud Messaging (GCM) to deliver push notifications.

Here's the flow:

1. Android app ask's GCM servers for a registration ID, which uniquely identifies an app-device pair.
2. App user wants to be notified when a section becomes available. App sends data about the section as well as the app's registration ID via a POST request to `/api/v1/alerts/course/gcm`.
3. After each of our hourly cron updates from OpenData, we check if any alerts has all its criteria matched, and if so, send off that alert via GCM. If successful, delete the alert entity.

Corresponding (work-in-progress) branch on Android app: https://github.com/uwflow/flow-android/tree/david-push-notifications