middleware for real-time updates using websockets

- remove pusher.js
- switching to Puma server
- middleware for ws/wss connection
- authentication for web sockets
- online/offline users
- helpers for sending messages
- bi-directional hash