Only query view's `get_canonical_slug` if necessary.

Currently the `CanonicalSlugDetailMixin` first queries the view's
`get_canonical_slug()` method, and then overrides it with the model's
equally named method, if available. This is unnecessary performance-wise
and fails if the model does not have a `slug` field (due to the default
implementation of the method inside the view).