Apply minimum cache TTL of 5 seconds, and remove publish intent auto-cleanup.

This avoids hammering origin around the time of publication.

Applying this minimum cache TTL means that there's no
pressing need to clean these up immediately.

This behaviour previously meant that it was important that any "coming
soon" content item was published before the intent.  Removing this
behaviour simplifies this use case, and also simplifies the code.

Intents will now only be cleaned up by the nightly cronjob.
This line is now fairly complicated and takes a fair bit of divining. A couple of suggestions:

* instead of the hard-coded `5.seconds.from_now`, would a `minimum_ttl` in the config alongside `default_ttl` be clearer?
* might it be clearer to pull this logic out into a `bounded_expiry` method (or something that similarly expresses the intent)?