Fix rubygems > 2.0 heuristic test

In some cases, upgrading to rubygems 2.0 from 1.8 can leave both
installations available in the load path. The 2.0 install is ahead of
the 1.8 install, but it is possible to load a file from the 1.8 install
if that file does not exist in rubygems 2.0. In particular,
rubygems/format does not exist in 2.0, so `require "rubygems/format"`
loads from rubygems 1.8.

When Chef "accidentally" loads the old rubygems/format, it defeats the
version detection heuristic (check if Gem::Format) is defined, which
eventually causes an error calling Gem::Package.open. Adding a check to
see if Gem::Package defines open resolves this problem.