Add caching of channels and users, add Slack.State

* Fetch users and channels from RTM and hold onto them
* Replace socket argument with a Slack.State struct