Reconnection events propagated to socket

Now `reconnecting` (created the event, and passing attempts to it) and `reconnect` events are propagated to socket, as well as `reconnect_attempt`, `reconnect_error` and `reconnect_failed`.
I think wherever we emit these events, we call `.emitPropagate` or similar.