Refactor the notification type to include other GCM fields.

Includes a bit of general clean-up.