Router organization and bug fixes

 - Organized the router into separate files.
   - database.go
     - abstracted all Redis communication into one module
   - listener.go
   - router.go
   - session.go
   - message.go
   - main.go

- Fixed a router deadlock caused by removing a close(l.recv) from 964b848
- Fixed a bug that could cause missing messages during sync, which could cause experiment deadlock
- Made identifiers more Go-like