swift: work around token expiry on CEPH
swift: work around token expiry on CEPH

This implements the Expiry interface so token expiry works properly

This change makes sure that this change from the swift library works
correctly with rclone's custom authenticator.

> Renew the token 60s before the expiry time
>
> The v2 and v3 auth schemes both return the expiry time of the token,
> so instead of waiting for a 401 error, renew the token 60s before this
> time.
>
> This makes transfers more efficient and also works around a bug in
> CEPH which returns 403 instead of 401 when the token expires.
>
> http://tracker.ceph.com/issues/22223

B4dM4n/rclone,ncw/rclone,ncw/rclone,ncw/rclone,olihey/rclone,B4dM4n/rclone,B4dM4n/rclone,ncw/rclone,olihey/rclone,B4dM4n/rclone,olihey/rclone,olihey/rclone