Check hash before upload and skip uploading identical files

This checks the MD5 sum from the etag header and skips files that
have not changed. This should make the process somewhat faster and
more reliable.

Implemented in two places:

* storage.py: checks hash when uploading single files
* collectstatic.py: overrides collectstatic command to avoid deleting
  identical files