title: More descriptive failure message using custom matcher with mockedResource.expects(where(???)) in ScalaMock
body: <p>I'm working with ScalaMock and ScalaTest to put together some unit tests. I want to use the ScalaMock's expectation syntax to confirm that the service I'm working on passes along acceptable Json to a mocked resource. In this case acceptable means some internal fields can be different, so I've written a custom function to determine whether the fields I care about match. The problem with this is that it produces relatively unhelpful logging when the expectations are not fulfilled. The expectations set as in:</p>
  
  <pre><code>(mockedResource.doAThing(_: Json)(_: SomeImplicitThing))
    .expects(
      where(
        jsonSimilarAndImplicitEqual(
          expectedJson,
          anInstanceOfImplicitThing
        )(_, _)
      )
    )
  </code></pre>
  
  <p>Produce the following logging on failure:</p>
  
  <pre><code>- should forward acceptable Json to the mockedResource
    Unsatisfied expectation:
  
    Expected:
    [info]   inAnyOrder {
    [info]     &lt;mock-1&gt; MockedResource.doAThing&lt;function1&gt; once (never called - UNSATISFIED)
    [info]   }
  </code></pre>
  
  <p>I'd like to be able to provide some custom logging function to describe why <code>jsonSimilarAndImplicitEqual</code> evaluated to false in a sensible place. I was hoping an <code>inAnyOrderWithLogging</code> block would prove sufficient, but it turns out I can't even use this construct, since it is not supported for AsyncMockFactory.</p>