Set expiry on TopicsController#Show to be 5 mins

We need this to be 5 minutes to changes to the featured set will show up reasonably quickly.

As part of this I've refactored the controller a bit to hide most of the logic which only applies to HTML formats inside a conditional.

cc @tekin 

https://www.pivotaltracker.com/story/show/53342563