Fix send_message to support passing generic data.

If you pass a string, old behaviour is preserved, otherwise, if you pass
a dict, it's passed straight as the data.
Support sending bulk messages to a queryset.

Based on code from:
https://github.com/jleclanche/django-push-notifications
Merge pull request #15 from tasn/develop

Add support for needed real life features
Move DeviceQuerySet to the model manager
Move code to the common function
Refactoring gcm api
Handle errors in GCM responses.

Delete devices from the database if the appropriate errors are returned.
If "error" is different than "Unavailable", delete the device.

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