[minor] Allow auth to be set through options and add another template rule.
[major] Support different strategies for reconnect.
[major] Big internals refactor to use a `options` property instead of seperate props
[minor] Register the `open` setTimeout
[test] Fixed reference to internal options