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

this fixes #532
> Could the chain method not override the description like a user would (essentially call description with an implementation), which would in turn allow it to be overridden and extended like a normal description?

It could, but I think that will still cause confusion for a case like I described above: when the user overrides `description`, `super()` wouldn't return what it was returning before the user overrode it.