Add extra support for determining current ruby type

Add `rbx?` `mri?` and `non_mri?` Ruby "types", for rspec/rspec-core#1760 but that highlighted to me that we could use some refactoring across our repos to remove duplication of detection for ruby types
This seems to assume that the only rubies are JRuby, RBx and MRI.  They are certainly the common ones and are the only ones we run our specs against, but there others like Topaz, Maglev and IronRuby.  I don't know how likely it is for any users to run RSpec on one of those alternate rubies but if there is something that is MRI-specific, this predicate will improperly consider one of those to be `mri?` (and `non_mri?` will likewise return the incorrect value).

Is there a better `mri?` check we can do?  Here's bundler's logic, FWIW:

https://github.com/bundler/bundler/blob/1fe23219d42365693326b716eb3d9a50973a4137/lib/bundler/current_ruby.rb#L46-L48