Vanchi/better presence

* Creates a Presence Sentry (one per server instance) which can send/listen to server keep-alive and notify if a server is down.
* Eliminates need for Local/Remote managers
* Disconnect queueing is a simple timeout

/cc @zendesk/zendesk-radar


### Steps to merge
 - [ ] :+1: of the team
 - [x] Fix/rewrite failing tests
 - [x] Create multiple server tests (better remote tests)

### References
 - Jira link: https://zendesk.atlassian.net/browse/RADAR-306

### Risks
 - Presence does not work as expected.
There could be other clients on other servers, who are simply subscribed to presence (not synced). They do not know about existing online clients. To them, this message will let them treat this client like a new one. However for those servers who know about these clients, this redis message does nothing since store already has these clients and does not generate user_added/client_added.

For remove/disconnect, again, I don't want to check because I actually want to remove the entries from redis (they could be stale entries from a fullRead). All checks will be done on the redis reflection message and will be appropriately dealt with.