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.
Why || []? We already know that this.map is an object, right? So even if empty, `Object.keys(this.map)` should return an empty array.