Cleanup when and how canonical links are added

Any view with a `canonical` property attached to it will cause
the canonical link tag in `<head>` to be updated, unless it
is explicitly set to `undefined`.

The value of `canonical` should be the link it should point to,
or a falsey value (like null) if it should not have a
canonical link.

This PR also changes the logic of when to apply canonical links
to content. Rather than attaching it to all derived copies,
which could differ substantially from their original, it attaches
the link to all content and makes it point to the unversioned URL
for the content. This ensures that every version of a piece of
content always shares the exact same URL, which seems to be a
more appropriate use of the tag.