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

this fixes #532
One other spec that would be useful is to show what order the clauses are in when there are multiple of them.  The clauses should be in invocation order, not `chain` definition order.  (One can imagine an implementation that does the latter that would pass your current specs).  To spec that, you'd just use a matcher like `matcher.and_divisible_by(3).and_smaller_than(10)` (the opposite order of the definition of `and_smaller_than` vs `and_divisible_by`) and show the description that results.