feat(NGSocket): implement reconnect with exponential backoff

Issue #11