Refactored login code to better handle redirects (#116)
Fixes #114: build_facades not handling discharge-required results
Fixes #115: JAAS update broke controller connections
Also ensures that the receiver and pinger tasks get cleaned up properly
when a connection is closed.
Also makes the model AllWatcher share the model connection to reduce the
number of open connections required. The independent connection is no
longer needed since the websocket responses are properly paired with the
requests.