Lots of cleanup and fixes to GCM / Push