add chained expectation descriptions to the default descriptions of custom matchers with fluent interfaces

this fixes #532
I think that "but" is the wrong conjunction here (as it normally indicates an opposing/contrasting thing).  I think `expect(x).to be_bigger_than(3).and_smaller_than(5).and_divisible_by(2)` (with `and` instead of `but`) reads better.