Refactor PushProvider interface.
Add "Create Custom Push Provider" guide to README.