Reduce complexity of TopicView 

The results of a personally therapeutic refactoring session (thanks @kytrinyx!)

Still much to do but this will reduce the complexity scores for `TopicView`

Along with minor extractions/cleanup, the main thing this PR contains is the introduction of a new class `FilterBestPosts` along with supporting specs