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

this fixes #532
Maybe this is just the way I instinctively structure code, but it kinda makes more sense to me to check the config option in this method (and always push the name/args on the `@chained_method_clauses` list when the chain method is invoked), since what the config option is about is whether or not the clauses are included in the `description`, not whether or not the implementation keeps track of the chain method invocations internally.  It has a side benefit of operating in a bit less surprising manner if users do something crazy like:

``` ruby
RSpec::Expectations.include_chain_clauses_in_custom_matcher_descriptions = false
matcher = be_bigger_than(4).and_smaller_than(6)
RSpec::Expectations.include_chain_clauses_in_custom_matcher_descriptions = true
matcher.description
```

...not that we'd officially support doing that, but if a crazy user tries that it feels more "correct" to me for the description to include the chained clauses.  Putting this together with my preference for guard clauses (and the fact that you can simplify away the `.empty?` check), and this method could be:

``` ruby
def chained_method_clause_sentences
  return '' if Expectations.configuration.include_chain_clauses_in_custom_matcher_descriptions?

  @chained_method_clauses.map do |(method_name, method_args)|
    " #{split_words(method_name)}#{to_sentence(method_args)}"
  end.join
end
```

* Given this method is meant to return a string, I think it's better to return the blank string rather than `nil`.
* I realized that you don't need to bother with making the `empty?` a special case if you remove the `' '` arg for `join` and the extra `insert` call, instead putting the prefixing space directly in the interpolated string in the `map` block.  Much simpler!