add optional last_modified to IOCloseRequest so we can set the file
mtime after it is closed.  I can intermittently reproduce multipart
downloads with mtime set to now.  This causes s3 sync to repeatedly
download large files. I suspect that it is because the mtime
is set before the file is closed.  I presume that if a flush is
outstanding that will update the mtime when the file is closed.