Use is_a_matcher? in arg_has_valid_description

This fixes #685. It means that we only print descriptions in errors for
matcher objects and not for user objects.
Implement diffing between args for mock expectations.
Add a changelog entry for #751
Merge pull request #751 from rspec/args-diffing

Use the differ to print diffs when args are mismatched between expectations and calls