Correctly generate change notes from publication log

[Trello ticket](https://trello.com/c/Ni3TBiUM/258-bug-change-notes-on-manuals-are-quintupled)

When a manual and its documents are published, we create a PublicationLog entry -- one for each document, each time the manual is published. This is then used to generate the change notes.

However, we only want to generate a change note for a document for the first PublicationLog entry for each document version.

Create a PublicationHistoryFilter encapsulating the logic necessary to do this.
I think this could all be replaced by:

```ruby
publication_history
  .sort_by(&:published_at)
  .uniq { |publication|
    [publication.slug, publication.version_number]
  }
```

I'd forgotten we were doing all the grouping by slug and date when displaying it in the frontend rather than when generating it in the publisher, otherwise I'd have suggested using a block with `uniq` earlier, sorry.