Add provider registration process.
Refactor GCM provider. Add Amazon Device Messaging support.