Add RSpec::Matchers::BuiltIn::BeBetween

Ruby's #between? instance method is included in the Comparable module.
Any object that mixes in Comparable and responds to the <=> operator
will also respond to #between?, including the following core classes:

* Numeric (Fixnum, Bignum, Integer, Float, Complex, and Rational)
* String
* Symbol
* Time

...as well as a few lesser-used ones (e.g. File::Stat, Gem::Version).

BeBetween defines a matcher that takes exactly two arguments--a minimum
and a maximum value--mimicking the interface of Comparable.html#between?
and ensuring backward compatibility.

Before this patch, using be_between on Comparable objects worked but
produced the following failure message:

    expected between?(1, 10) to return true, got false

After this patch, it will produce this message, instead:

    expected 5 to be between 1 and 10

I believe this is a much more informative failure message, as it reveals
the actual value, which is often a variable, in addition to displaying
the expectation in plainer English.
Alphabetize/organize built-in matchers
Define custom predicate method to test description generation
Note that between is inclusive of min and max values and test edge cases
Make BeBetween composable
Test against JRuby and MRI at head
Merge pull request #405 from sferik/be_between

Add RSpec::Matchers::BuiltIn::BeBetween
A few post-merge fixups.

- Add changelog entry.
- Don't double-include `Composable` (it's included in `BaseMatcher`)
- Improve composable spec so that it tries to match against a value
  that does not respond to `between?`. (Nothing failed when I removed
  the `comparable?` check from `matches?`).
- Spec the failure message for non-comparables.
- Don't put `actual.inspect` in the failure message twice. Sometimes
  `inspect` output can be very large, and we usually just put it
  in the failure message once.
- Leverage more of BaseMatcher (e.g. for `failure_message_when_negated`).
Handle composed expressions of mixed types.