[4.2] Cache : ensure the minimum TTL is always one minute

When settings a cache key with a `Carbon` or `Datetime` instance either in the past or less than 1 minute in the future, the minutes can be set to 0 and interpreted as a `forever` command.
This PR solves this and ensures that, when a cache key is set with a duration, the minimum calculated duration will always be 1 minute.

Related: https://github.com/laravel/framework/issues/5401

Also add some tests for `getMinutes`.