Stop globalize3 saving blank default translations

By some quirk of the globalize3 internals, non-English editions end up
with a blank English translation saved form them when they are updated
(e.g. published). By renaming the :primary_locale attribute to :locale
and relying on the behaviour added by [this commit](https://github.com/svenfuchs/globalize3/commit/6c7b21a560e06356ac6aed7b4099333a5c6868e0)
in globalize3, we can stop this from happening.
sorted_locales handles non-English editions
Make sure slugs are strings

They end up as strings in the database, but if we are working with
them straight after creation, we want to make sure the slug is a
string to avoid giving the routing helpers grief
Routing helpers handle non-English editions

We set the locale in the routing parameters for non-English editions
to ensure that the generated links always link to the correct
translation.

Note that this assumes non-English editions never have additional
translations, as setting the locale in this way forces it to what we
set, i.e. LocalisedUrlPathHelper will not override it with the current
locale in the public-facing controllers. If in future we decide that
non-English editions *can* have translations, we will have to rethink
how we generate these links so that they default to the edition's
primary locale, but still allow overrides for public-facing routing on
localised pages.