Add previous and next article functionality.

__This commit branches off of #116, so [this diff](https://github.com/moneyadviceservice/cms/compare/popular_links...previous_next_article) is probably easier to follow.__

See moneyadviceservice/frontend#857.

Exposes the next and previous posts in the article's first category through the article JSON response.
We can reuse the subjects and move the variables to a let to the spec be more descriptive about each context. e.g:

```ruby
context 'popular links' do
  subject(:popular_links) do
    subject.related_content[:popular_links]
  end
  
  before do
    allow(Comfy::Cms::Page)
      .to receive(:most_popular)
      .with(3)
      .and_return(pages)
  end

  context 'when has three most popular articles in english' do
    let(:pages) do
      [
        build(:page, slug: 'first-article', label: 'First Article'),
        build(:page, slug: 'second-article', label: 'Second Article')
      ]
    end
    
    before do
      site.label = 'en'
    end

    it 'returns english popular links' do
      expect(popular_links).to eq([
        { title: 'First Article', path: '/en/articles/first-article' },
        { title: 'Second Article', path: '/en/articles/second-article' }
      ])
    end
  end

  context 'when has three most popular articles in welsh' do
    let(:pages) do
      [english_article]
    end
    
    let(:english_article) do
      build(:page, slug: 'first-article-in_english', label: 'First Article in English')
    end
    
    let(:welsh_article) do
      build(:page, slug: 'first-article-in-welsh', label: 'First Article in Welsh')
    end
    
    before do
      site.label = 'cy'
      allow(english_article).to receive(:mirrors).and_return([welsh_article])
    end
    
    it 'returns popular articles in welsh' do
      expect(popular_links).to eq([
        { title: 'First Article in Welsh', path: '/cy/articles/first-article-in-welsh' }
      ])
    end
  end
end
```