Refactoring

- Simplified connection type
- => splitted SessionState into Env and State
- => introduced SessionM (Reader + State) monad
- => Less 'asks' more record destruction