Topic/instance switcher

Opening this at Mike's request. The feature basically works, but there are a few fatal crashes that I'm still working through, which will get fixed before this is merged.

Please disregard the first two commits, they mirror each other. This was used as a way to check in inbetween changes, but continue to edit them in the staging environment, by backing them out. This will not be merged.
The more appropriate thing to do here is Log this message