Sends socket exceptions as 'pusher:error' events when async

Fixes #33

Waiting on @mloughran for review