[JRO] SRP! Split regular and private topics up.

* Had been handling both normal and private topics with one controller.
  Splitting them up into separate responsibilities to clean up controller
  and view code.
* DRY'd up some code.
* Cleaned up some style and formatting issues.