Set release version and date
Define behavior of Kernel#gem for prereleases

Previously RubyGems would activate prerelease gems with Kernel#gem.
This behavior was undefined and wrong as use of prerelease gems should
always be explicitly opt-in.

Now you must specify prerelease requirements to use prerelease gems.

Fixes #938
Fix handling of git gem deps in lockfile

Unversioned gem dependencies in the GIT section of a lockfile were
parsed but not tested.  These did not work as missing
GitSpecification#add_dependency was missing.

Now the missing method is implemented.

Fixes #940
Refactor adding versioned GIT dependencies

Now both versioned and unversioned GIT dependencies in a lockfile use
GitSpecification#add_dependency.

This follows @8a3bd00
Ignore ruby in gem.deps.rb when installing

Now RubyGems allows a gem dependencies file to be used for installing
(but not for activation) when the ruby version does not match the one
specified in the gem.deps.rb.

Previously RubyGems would raise a VersionMismatch exception even when
installing.  This seems less-useful than allowing installation with the
version mismatch.

RubyGems may install incorrect gems in this case if there are
ruby-version-specific gems that are only installable on the ruby
version listed in the gem.deps.rb.

Fixes #941

Pair: @Elffers
Add open to list of builtin commands

This was missed when the open command was added.

See #789

Pair: @Elffers
Add #941 to History
Remove unused git:changelog tasks
Include SHA256 checksums in release announcements

Fixes #939
Refactor package tasks to use rake
get ruby.exe path from Gem.ruby because bundler can change bindir
Fix handling path's started with '~/' in environment variable PATH.
Fix precedence bug.
Merge pull request #945 from AlexTalker/master

Expand ~ in $PATH when installing

RubyGems checks for executables in $PATH to warn properly.  Now RubyGems
matches shell behavior.
Test Installer#check_that_user_bin_dir_is_in_path
Add test for #945

Based on newly added tests for check_that_user_bin_dir_is_in_path
Add #945 to History
Update DOC: in Gem::Installer
Fix gem install --explain -g

This crashed due to a poor refactor in @d1299dcc combined with a lack
of tests.

Patch by @Elffers

Fixes #947
Stop defining an empty Date class

* Simply use a matcher: if we have an instance of Date,
  Date must be loaded and we can simply use Date#===.
  If Date is not defined, then Date is not loaded
  and we can not have an instance of Date.
* See https://bugs.ruby-lang.org/issues/9890