PubDocRoutesHelper is always explicit about locale

:polymorphic_url, used by :document_url in PublicDocumentRoutesHelper,
uses the current locale when generating routes if a locale is not
explicitly given.  This meant that when in a foreign locale it would
generate a url in that locale when given an english edition, even if
that edition wasn't translated into the locale.

This commit changes the behaviour to always be explicit about locale
for translatable edition types with the following logic:

• If a :locale option is given, use that.

• Otherwise if we're in a foreign locale and the given edition is
  available in that locale, use that locale.

• Otherwise, use english.