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
Merge pull request #17 from tasn/error_handling

Handle errors in GCM responses