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
Ah, now I remember JRuby does support optional keyword arguments, but not enough for it to work (doesn't report them in params, I've modified the detection to look for this...)