Set expires should min current header

Adding missing requirements as well as adding the ability to set expires to the min value.

When an isoformat string is set to the expires_header the code will pick the min of it and the value set currently for the expires header.
Why not have the API take a `datetime` object? Then this will be simpler. The context can have a `get_headers` which serializes it when it is read.