test(e2e): add a test for reconnecting
test(unit): remove the global "timer"
feat: buffer result messages when polling

Some browsers (Safari) starts loosing messages when sending too often (using xhr/html polling). Batching solves the issue.
feat: sync page unload (disconnect)