Optional CloudFront invalidation

With the recent change to use CloudFront for dependency distribution,
we started running into the problem that files such as the indexes
were _aggressively_ cached.  This meant that although new versions of
dependencies were available and the indexes were updated, most users
would not see the updated index to get the updated dependencies.
Invalidating the cache manually was possible, but it involved using a
web UI and was prone to being forgotten.

This change adds the ability to optional invalidate the CloudFront
cache for files after they are uploaded.  Invalidation will only be
attempted if the user has specified the optional --distribution-id
argument (with the id of the CloudFront distribution to be
invalidated) and the file existed before the latest upload.  The
latter restriction prevents unneeded invalidations for files that are
being uploaded for the first time.

[#68169132]
Merge 68169132-invalidate-index to master

[Completes #68169132]