GCM Tests and improvements

Created a GCM Test server, a bunch of unit tests around it, and renamed
some existing tests