When checksums are available, upload using the checksum headers.

:construction: 


This feels strange I think we should just put the retry logic down in `Artifact#upload`.