engine_version must be set when engine is set

Bundler's Gemfile requires that the engine version be specified if the
user specifies a ruby engine.  Now we require this too.
Support engine restrictions in gem.deps.rb

This matches bundler's engine restriction feature in a Gemfile with a
ruby engine.
Test with_engine_version

This code deals with several variables, so it needs its own test to
make sure it's not poisoning the tests that rely upon it.
Also remove engine_version_const before restore

This fixes some test failures and warnings.
Support engine version restrictions in gem.deps.rb

This matches bundler's restrictions in a Gemfile.