Pusher client rewrite

This might be useful, either as a whole or parts of it.

Change summary:
- Use constructor arguments for configuration instead of having to change module variables
- Added ext folder with Google App Engine (incl NDB) and Tornado support, no import errors - unless actually importing extensions
- Added channel and event id validation using translate which is presumably fastest method
- Added json_dumps argument to client constructor to allow easy override of encoder