Verify artifact checksum

[WIP]
Let's make this exception more generic (so all publishers can use it) and the exceptions message more verbose:

```ruby
class PublishedPackageChecksumMismatch < Error
  def initialize(package, expected, actual)
    super <<-EOH
Publishing of #{package.name} failed due to a checksum mismatch between
the local and uploaded versions of the package:

    expected MD5: #{expected}
    actual MD5:   #{actual}

EOH
  end
end
```