Make Rubinius.add_defn_method return the name of the def'd method, as a symbol

This makes the Rubinius behavior compatible with MRI 2.1,
which now sports a specified return value for def.

>> (def foo; end) #=> :foo

See RubySpec:
  https://github.com/rubyspec/rubyspec/commit/e567d2458e46c12e50c85394f509f3b5a5688e11
Update test fixtures that relied on CompiledCode returned from def.

Some of the spec/core test fixtures were relying on the CompiledCode
instance getting returned from a method definition.

These fixtures were updated to fetch the CompiledCode instance from
the symbol, using instance_method to get the UnboundMethod instance,
which in turn holds the CompiledCode instance as its executable.

>> def foo; end #=> :foo
>> instance_method(:foo).executable #=> #<Rubinius::CompiledCode ...>
Add specs to ensure all Enumerable classes include Enumerable
Add specs to ensure all Comparable classes include Comparable
Include Comparable module in Symbol class
Make benchmark comparable between the different encoding path

This makes sure both run the same number of iterations so these are
properly comparable.
Added specs for break, next with method.

This was fixed for return in https://github.com/rubinius/rubinius/issues/1917
Added missing rb_io_check_io prototype.
Updated rubygems to 2.2.1.

=== 2.2.0 / 2013-12-26

Special thanks to Vít Ondruch and Michal Papis for testing and finding bugs in
RubyGems as it was prepared for the 2.2.0 release.

Major enhancements:

* RubyGems can check for gem dependencies files (gem.deps.rb or Gemfile) when
  rubygems executables are started and uses the found dependencies.  This
  means `rake` will work similar to `bundle exec rake`.  To enable this set
  the `RUBYGEMS_GEMDEPS` environment variable to the location of your
  dependencies file.

  See Gem::use_gemdeps for further details.

* A RubyGems directory may now be shared amongst multiple ruby versions.  Upon
  activation RubyGems will automatically compile missing extensions for the
  current platform when the built objects are missing.  Issue #596 by Michal
  Papis

  By default different platforms do not share gem install locations so this
  must be configured by setting GEM_HOME to a common directory.  Some gems use
  fixed paths for requiring extensions and are not compatible with sharing gem
  directories.

  The default sharing location may be configured by RubyGems packagers through
  Gem.default_ext_dir_for.  Pull Request #744 by Vít Ondruch.

Minor enhancements:

* RubyGems checks the 'allowed_push_host' metadata value when pushing a gem to
  prevent an accidental push to a public repository (such as rubygems.org).
  If you have private gems you should set this value in your gem specification
  metadata.  Pull request #603 by Seamus Abshere.
* `gem list` now shows results for multiple arguments.  Pull request #604 by
  Zach Rabinovich.
* `gem pristine --extensions` will restore only gems with extensions.  Issue
  #619 by Postmodern.
* Gem::Specification#files is now sorted.  Pull request #612 by Justin George.
* For `gem list` and friends, "LOCAL" and "REMOTE" headers are omitted if
  only local or remote gem information is requested with --quiet.  Pull
  request #615 by Michal Papis.
* Added Gem::Specification#full_require_paths which is like require_paths, but
  returns a fully-qualified results.  Pull request #632 by Vít Ondruch.
* RubyGems now looks for the https_proxy environment variable for https://
  sources.  RubyGems will fall back to http_proxy if there is no https_proxy.
  Issue #610 by mkristian.
* RubyGems now creates directories in .gem files.  Issue #631 by marksolaris.
* RubyGems raises an exception when a specification includes its gem.  Issue
  #623 by notEthan.
* RubyGems now displays relevant release note information when updating
  RubyGems.  Issue #647 by Trevor Wennblom.
* Deprecated Gem::Installer::ExtensionBuildError in favor of
  Gem::Ext::BuildError.  The old constant is an alias for the new constant.
* When extensions are built the gem_make.out file is always written now, even
  on success.  This will help with debugging bad builds that report success.
* If a specification fails to validate RubyGems shows a link to the
  specification reference guide.  Issue #656 by Markus Heiler.
* When using `gem install -g`, RubyGems now detects the presence of an
  Isolate, Gemfile or gem.deps.rb file.
* Added Gem::StubSpecification#stubbed? to help determine if a user should run
  `gem pristine` to speed up gem loading.  Pull request #694 and #701 by Jon
  Leighton.
* RubyGems now warns when a gem has a pessimistic version dependency that may
  be too strict.
* RubyGems now warns when a gem has an open-ended dependency.
* RubyGems now raises an exception when a dependency for a gem is defined
  twice.
* Marked the license specification attribute as recommended.  Pull request
  #713 by Benjamin Fleischer.
* RubyGems uses io/console instead of `stty` when available.  Pull request
  #740 by Nobuyoshi Nakada
* Relaxed Gem.ruby tests for platforms that override where ruby lives.  Pull
  Request #755 by strzibny.

Bug fixes:

* RubyGems now returns an error status when any file given to `gem which`
  cannot be found.  Ruby bug #9004 by Eugene Vilensky.
* Fixed command escaping when building rake extensions.  Pull request #721 by
  Dmitry Ratnikov.
* Fixed uninstallation of gems when GEM_HOME is a relative directory.  Issue
  #708 by Ryan Davis.
* Default gems are now ignored by Gem::Validator#alien.  Issue #717 by David
  Bahar.
* Fixed typos in RubyGems.  Pull requests #723, #725, #731 by Akira Matsuda,
  pull request #736 by Leo Gallucci, pull request #746 by DV Suresh.
* RubyGems now holds exclusive locks on cached gem files to prevent incorrect
  updates.  Pull Request #737 by Smit Shah
* Improved speed of `gem install --ignore-dependencies`.  Patch by Terence
  Lee.

------------------------------------------------------------------------------
Port to LLVM 3.4
Merge pull request #2870 from sferik/comparable_symbol

Make Symbol Comparable
Fixed JIT API broken by 5565ed88.
Merge pull request #2868 from jemc/def_return_symbol

Method def should return Symbol instead of CompiledCode
Revert "Merge pull request #2868 from jemc/def_return_symbol"

We only want to change the API exposing the behavior that MRI changed. We
don't want to change our own API.

Also need to rewrite these specs. Many spec descriptions are insufficient (eg
"has the correct value" is not an acceptable spec).

See later commits for the fixes.

This reverts commit 180466bf51b0a79ef2888e2797aaac85f9ac6714, reversing
changes made to 7c6c45276806d3b66c179193668fda491b6ddba8.
Updated CI specs to RubySpec 57e46a24.
Removed problematic spec.

We need a better mechanism for obtaining the comparison value.
Return the method name from def.
Updated inline cache specs.
Fixed some CompiledCode specs.
Moved benchmark/ to rubinius-benchmark repository.