Err if uploading different content to same CDN key
Err if uploading different content to same CDN key

Fixes: CORE-933

Test plan:

* set up config/canvas_cdn.yml with dev credentials 
  (If you don’t have them hit me up and I will give them to you)
* run `rake canvas:compile_assets`
* run `rake canvas:cdn:upload_to_s3`
* look at your rails logs, you should see a bunch of messages about it
  skipping stuff that is already there but it should complete 
  successfully.
* load some pages in your canvas, they should load their js/css from
  that CDN you just uploaded everything to.
* manually edit a file in `public/dist` with some new contents:
  Eg: I added the string “this is different” to
  public/dist/lato-fontfaceobserver-11a14bc0b6.js
* run `rake canvas:cdn:upload_to_s3` again
* it should error out and say: 
“There is a already a file named <file you changed> in the s3 bucket, 
But its contents don't match what you are trying upload. If a file's 
contents change, its name MUST change. Otherwise you'll run into all 
kinds of caching issues in production.”

Change-Id: I2e0ed9ce2e20cd112c053a1f6b3b8f0abae86d9a
Reviewed-on: https://gerrit.instructure.com/139479
Tested-by: Jenkins
QA-Review: Jeremy Putnam <b030d6d6f199f844ec424882be473c2ab9adc93b@instructure.com>
Reviewed-by: Brent Burgoyne <bccf16d7abdd2611580b1cd7d7a6fcc150d619da@instructure.com>
Product-Review: Ryan Shaw <ea3cd978650417470535f3a4725b6b5042a6ab59@instructure.com>

sfu/canvas-lms,djbender/canvas-lms,djbender/canvas-lms,instructure/canvas-lms,sfu/canvas-lms,sfu/canvas-lms,instructure/canvas-lms,instructure/canvas-lms,instructure/canvas-lms,instructure/canvas-lms,instructure/canvas-lms,djbender/canvas-lms,instructure/canvas-lms,sfu/canvas-lms,sfu/canvas-lms,djbender/canvas-lms,sfu/canvas-lms,sfu/canvas-lms