Replace `ControllerState` with separate state and Request arguments to `ControllerT`

* Make `ControllerT` an instances of MonadState where the state is the app state
* Make `ControllerT` an instances of MonadRead over the Request
* Remove `pass` function as it is redundant with `return ()`
* Minor cleanup