fix(ngSocket): the close code is stored in CloseEvent.code

Also use 4000 as the reconnectable status code as MDN recommends codes
between 4000-4999 be used by applications.

https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent#Status_codes
feat(NGSocket): implement reconnect with exponential backoff

Issue #11