Fix Looper issues on websocket creation

AppRTCClient was creating a Looper inside the socket connect AsyncTask.
Loopers are bound to a particular thread, so this Looper was getting
bound to the one of the worker threads behind the AsyncTack execution
pool. This would more or less work for a while when disconnecting and
reconnecting user sessions, but eventually the connect task would get
assigned to a worker thread that had been previously used by an earlier
connection and thus already had a Looper assigned. Things would get
weird after this point.

To fix it, this patch moves the web socket 'upgrade' out of the
AsyncTask itself and into the post execute logic for that task. The
network traffic for setting up the SSL socket is still in the background
so Android doesn't complain about networking on the UI thread, and the
websocket lib does it's own threading behind the scenes too. The looper
ends up being created on the main thread in this case, so there's only
ever one of them, and the same one is given to all future connections.

tl;dr Android's threading model is a massive pain.