Update the structure of metadata on document pages

Move from lots of desecrate bits of metadata to a more unified approach
with only a 'part of' or 'from' metadata.

Remove the old document_metadata method in favour of two helpers one for
part of and one for from. They both return an array of links which can
then be output in either the top or bottom of the page.

Updated the tests to ensure all the items which should be outputted for
each method is.

Moved the operational_field and location metadata items to the extra
metadata partial. They don't make sense in either part of or from and
are only used by one format.

Added classes on to each type of link which is going to be displayed so
we can continue to get analytical data for them.
Refactor hide extra rows

Hide extra rows didn't work so well with inline content and only really
worked with block level children. This updates hide-extra-rows to be
able to hide inline content like that found in the metadata on a
document. It adds a call to it on the new document metadata.
Use locales for new metadata

Also update all the locale files to match this change.
Update metadata link tracking for new style

Update the link tracking for the new format metadata links. Now uses
different logic for the top and the bottom because the mark up is to
different to use the same.
Localise the footer metadata headings
Don't assume document at slug exists

This prevents exceptions being raised when an attempt is made to preview
an HTML attachment on a document that does not exist.
Prevent preview of access-limited HTMLAttachments

This correctly scopes HTMLAttachment preview to the loaded edition and
also enforces permissions check for access-limited publications.
Don't raise when we can render
Handle pdf-reader gem errors

The pdf-reader gem will not handle every single PDF. Here we rescue the
two common errors caused by strange PDFs and carry on. There is little
point reporting these errors to our exception tracking as there is
little we can do about malformed or unsupported PDFs.
Only include attachment info fields if they actually exist, this was including empty strings
Change alternative-format request copy, per request. Strip whitespace on the email, as some have trailing space and it messes with the copy punctutation
Make the title/download/link of attachments more clearly a link, underlined.

Remove bold as bold+underline is a bit much, and move the alternative-format a less appealing click target (spaced from heading, and not 100% width) to avoid accidental clicks there
Merge pull request #1520 from alphagov/handle-html-attachment-preview-on-non-existent-docs

Handle html attachment preview on non existent docs
Merge pull request #1521 from alphagov/handle-pdf-reader-issues

Handle pdf-reader gem errors
Better scheduled publishing error reporting

Currently much of the context around errors raised during scheduled
publishing is lost because the error message of the exception raised is
not reported.
Merge pull request #1522 from alphagov/more-info-in-exception-notifications

Better scheduled publishing error reporting
Include more information in the alt-format request to help those dealing with the requests

* original format that wasn't asuitable
* ask for more details of why it wasn't suitable and what would be better - should avoid some back and forth with requester
Add with_this_determiner helper and fix text on attachment preview
Check pushState for stats announcement filter

Disable the stats announcement filter script when history.pushState
isn't available. It's more important for users to have the correct url
for a search than to have ajaxy updating search results.
Merge pull request #1526 from alphagov/alternative-format-publication-request

Improvements to how alternative formats of documents are requested