add support for custom rpc handlers
refactored request/response and channel interfaces
added new WebSocket::Request class
updated deps