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.