Fix ordering of stats announcements in admin

We want the announcements returned in reverse date order, i.e. the most recent (
or future-dated ones) first.
Add support to filter announcements by date

Can ask for past or future announcements only. When asking for future statistics
announcements, they are returned in date order, i.e. the closest one first. This
makes it more likely that users will see the announcements that are most
pertinent, i.e. those that are due soon but do not yet have a linked
publication.
Wire in admin stats announcements date filtering
Highlight unlinked announcements and tweak filter

This draws attention to those announcements that have yet to be linked to a
publication.
Kill n+1 queries on admin announcements filter

We pre-fetch all the associations that get used on the index page
Filtering stats announcements that aren't linked

This enables users to view only those statistics announcements that are not
linked to a publication.
Default to showing future release announcements

It's likely that 95% of the time, a user working with statistics announcements
is going to want to see the future-dated ones, not those that have since passed.
Therefor it makes sense for the index page to default to showing the future
dated announcements for their organisation.
Warn about upcoming releases that are not linked

If there are statistics announcements due in the next four weeks that have not
been linked to a publication, then we warn the user. They can click a link to
view these announcements, making it easier to put things right.
Consistent use of language

Users are used to using "publication" and not "document" when referring to the
thing they link to the announcement.
Display dynamic title based on filter and user

Be more descriptive with the page title to make it clearer to the user what set
of statistics announcements they are seeing.
Simplified interface for stats announcements factory

Instead of building and overriding the current release date association, a
release date can be provided directly in the main statistics announcement
factory.
Give description of current announcements filter

More detail than provided in the title, specifically describing which date range
of statistics announcements are being shown and whether only unlinked
announcements are being listed.
Tidy up stats announcements table view
Various changes to make it more user-friendly:

* Re-order the columns to put "Release date" first
* Highlight the release date column to draw attention to the ordering
* Remove the "Display date" column and show the info in the title column
* Only highlight the publication cell for announcements without a publication
* List the organisations as a sentence, not as an HTML list
* Change the "Reset" link to read "Reset all fields" to be consistent with the
documents filter
Don't show warning if matches filter

If a user has clicked the link in the warning, then we don't want to show them
the warning again.
Reduce "imminent" period for stats announcements

It was decided that 4 weeks is probably too far in advanced to instill a sense
of imminence in users. We've therefor reduced the time to 2 weeks.
Ensure announcements scope loads the right things

So this is quite complicated... It's an example of a "greatest n by group"
query, but on a join model that we are eager loading. We want to get all the
statistics announcements for the given criteria, ordering them by the release
date on the most recent joined statistics announcement date.
Move table’s inline styles to stylesheet
Move table announcement styles to stylesheet
Correct alignment of publication checkbox

* Reset generic filter styles applied to form elements when in a
checkbox container
Add a remove margins helper class