Prefers displaying expected values using `#inspect`.

We don't want to call `#description` on user's objects when displaying
them in formatter and other output. This checks that objects are
matchers via both type checking and duck typing and then uses
`#description`. Otherwise `#inspect` is used.

@samphippen and I paired on this.

[Fixes #260]