Add Single-signon support

A site can provide credentials to an embeded client via a url fragment.
btoa(JSON.stringify({user: `username`, secret: `password/token`))
Add FlashSocket

This lets the client attempt to connect to the irc server directly,
which performs better for everyone. will fall back to ajax when flash is
unavaliable.

UTF-8 decoding happens in javascript to avoid flash<->javascript
stupidity and handle partial codepoints.