Handle lots of channels better

Get rid of threads and make all actions synchronous instead (to
make sure we are measuring our commands to the server so we don't
flood).

Don't explicitly ask for the topics to save.  Instead, notice the
topics when joining and keep updating the local copy (except when
we are updating the topic) to speed up the process of changing
topics.

Move the setting of the topic and the broadcast closer together so
that channels don't wait a long time between the announcement
and the topic change.

Give the user confirmation of what's going on, since their channel
might not be near the beginning or end of the list.

Change-Id: I317062268bc591c5ed9db0cb1bbc6fe0e79bec5e
Support SSL

Change-Id: I0d6429bf32dbf565b30b6225fcf2f9b951956e4b