consistently raise Pusher::Error when JSON encoding or decoding problems occur

also log messages consistently