MBS-6570: Allow clearing relationship dates in relationship editor

If a begin or end date are removed for a relationship, the field doesn't
get submitted at all. To the server code, this is interpreted as
"the user doesn't want to modify this field, whatever it's current contents
are" - which is not what the user intendend.

As a workaround, I am now defaulting undef begin/end dates to an empty
hash, in the code that submits "edit relationship" edits. An empty hash
means unset year/month/day fields.
MBS-6571, load suffix in Data::Artwork->get_by_id and use that in Edit/Remove cover art edits.
MBS-6571, Use JOIN ... USING instead of NATURAL JOIN.
MBS-6571, load edited artwork in foreign_keys and move image filename from templates to entity class.
MBS-1820: Add more information to release search results

Adds release labels, medium formats, release group type and
release status to the display of the search results for releases.
MBS-6591: Show work relationships in JSON web service

/ws/2 has support for showing artist relationships of work
relationships. This commit enables this for the JSON serializer too.
MBS-2151: Use a placeholder for track durations in the release editor
MBS-3204: Display documentation about pseudo-releases

If the user selects the 'pseudo-release' release status, a documentation
bubble is displayed explaining what this status is meant to be used
for.
MBS-1820: Remove accidental duplication of code
MBS-1820: Use try_get_session instead of c.session
MBS-2151: Do not format null track lengths as '?:??'

Instead use the empty string
MBS-6591: Add a test that recording->work->artist relationships show in JSON
MBS-5965: store non-precomposed relationship info in 'Remove Relationship' edits so we don't store translated information in edit data.
MBS-6628: Correctly accept merge label edits with subscriptions

The Edit::Role::MergeSubscription role was incorrectly generalised, and
still had 'artist' hard-coded. This works fine for artist merges, but
fails for label merges as the deleted subscriptions have the 'label' key,
rather than 'artist'. This commit changes this code to call model_to_type
to identify the key name.
MBS-6630, do not show remove button on completed uploads.
MBS-3204: Rewrite pseudo-release documentation to be clearer
MBS-6622: Make sure all login pages submit over HTTPS

If SSL_REDIRECTS_ENABLED is true, the action of the login form will be
a https:// uri. If it is not true, then http:// will be used.
MBS-6622: Redirect over SSL when a page tries to display login forms

When a page requires a user to be logged in, it would normally
display the login form. Now, the action first ensures that the
user is connected over SSL before displaying the form. If they are
not, it redirects them to the same page over SSL.
MBS-6622: Don't use return_to_http any more

We now only upgrade the connection to HTTPS and don't worry about
redirecting the user back to a HTTP connection. This fixes the
redirection loop that the parent commit introduced.
MBS-6220: Do not HTML escape artist name tooltips in diff_artist_credits

diff_artist_credits builds its output using HTML::Tiny, but HTML::Tiny
automatically applies HTML escaping to attribute values.