Handle errors in GCM responses.

Added a "mark_inactive()" function to the Device class that is
override-able and is called now instead of is_active=False.
mark_inactive() is now called if the appropriate errors are returned.

This is according to:
http://developer.android.com/google/gcm/http.html