Move the building of related posts into their own class

This is a WIP extraction of the related posts functionality into its own class, with the eventual goal of removing the `Post#related_posts` method entirely.

Why remove `Post#related_posts`? The reason is because it's only use is to provide a `related_posts` method for the `site` object in a post's liquid object.

:construction: :construction: :construction: **Danger Will Robinson!** :construction: :construction: :construction: 
This currently relies on the existing tests to be doing the right thing with regards to related posts (but they're not) and so some additional tests will be needed for this thing before it's :+1: to :ship:.