[4.2] Added customizable expiration time to Redis queue jobs

This is a resubmission of #6141 with removal of constructor changes so we can get this into 4.2.

When using a Redis queue, it used to expire jobs if they lasted more than 60 seconds by default. This created some issues where a job could be processing for longer than 60 seconds, but it would add it back to the delayed queue so later you'd get multiple instances of the same job running in parallel.

I've added an expire option that could be added to config/queue.php. This value should be null if you don't want to expire jobs, or an integer expiration time.
Why are we allowing `null` here?