basic gcm messaging outline

Haven't tested it completely yet. Mostly just wanted you to look over the code to make sure I'm going the right way.