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.
I don't know where but I think there is an exceedingly similar method in another file in the app somewhere...

@mmcfarland Any ideas?

Regardless, its static and could get easily moved out to a helper class, which is where it probably belongs