Add client events

Also move common pusher event stuff to pusher_event module
This modification made tests less coupled
Merge branch 'client-events'
Update README.md