Add custom event support

Add a decoder/encoder for events.
This PR allows to emit non-standard events.
This part of the protocol specification was added:
```
'5:' [message id ('+')] ':' [message endpoint] ':' [json encoded event]
```