RADAR-215: Presence refactor

this is only one step out of many into reducing the code complexity.

- remote_manager is still there because it is used in the API O_o
- there are still some changes missing, for example, the initialization is not fully working and the system does not behave well if an instance crashes (timeouts).
RADAR-235 Added timeout to stored presence data
RADAR-235: feedback

- fixed some edge cases and added tests for those.
- fullRead on initialization
RADAR-235: minor code refactoring
RADAR-235: beautifully simple timeout manager

Credits + Karma to @Vanchi
RADAR-235: fixed discrepency between previous sync() and getStatus()
RADAR-235 timeout reschedule test  & event order
Merge branch 'master' into nherment/RADAR-235_refactor_presence

Conflicts:
	core/lib/resources/presence/index.js
	core/lib/resources/presence/local_manager.js
	server/server.js
	tests/client.offline.test.js
	tests/presence.remote.test.js
	tests/presence.test.js
dummy commit to wake up travis
dummy checkin: damn you travis
Merge pull request #46 from zendesk/nherment/RADAR-235_refactor_presence

Presence refactor
subscribes are async
Merge branch 'master' into vanchi/simplify_persistence_n_tests

Conflicts:
	server/server.js
	tests/client.presence.test.js
Merge branch 'master' into vanchi/simplify_persistence_n_tests

Conflicts:
	tests/client.presence.test.js