Revamp the Rake tasks

Upon attempting to test the Rake tasks, it was noticed that they were
not implemented particularly well.  This change does a massive
overhaul to those tasks and tests them completely to boot.

[#71229872]
Merge 71229872-dependency-cache-task to master

[Completes #71229872]
Bump to 1.1.0.pre1
Improve Windows packaging experience

Previously, when the DownloadCache was used on a Windows machine, it
could not read and write files properly.  This was due to it using the
default system encoding which differed from the expected UTF-8.  This
change updates the DownloadCache to always read and write files as
binary in order to get around the encoding issue.

Previously, when files were cached by the DownloadCache, the file
names were escaped to ensure that there were no forward slashes in
them.  On Windows, this escaping is not sufficient, as colons must be
escaped as well.  This change updates the escaping to cover this
additional case.

[#71925232][resolves #53]
Merge 71925232-windows-packaging-improvements to master

[Completes #71925232]
Immutable CachedFiles

Previously, the CachedFile always behaved as if it was mutable, even
in situations where it was working against an immutable cache.  This
resulted in situations where a combination of intermittent network
connections and read-only file systems would cause an attempted
direction creation that would fail.  This change enhances the
CacheFile such that it can behave in both a mutable and immutable
fashion.

[#71928434]
Merge 71928434-mkdir-immutable-cache to master

[Completes #71928434]
Temporarily override Internet availability

This change adds the ability to temporarily override the Internet
availability in the system.
repository_helper

This change adds a repository_helper test helper that returns a
standard version and uri from ConfiguredItem#find_item.
v1.2.0.pre
Copyright improvements

This change ensures that copyrights are applied all files.
Conditional Basic Auth

Previously, basic auth headers were added to every DownloadCache
request.  In the case where there were no basic auth credentials,
empty strings were used for the username and password.  This was
wrong, although tolerated by the primarily used CloudFront.  This
change ensures that basic auth headers are only added when there are
both a username and password specified.

[#72253796]
Merge 72253796-conditional-basic-auth to master

[Completes #72253796]
Version updates

This change updates the dependency versions