Cleanup matcher_execution_context.

* The external @matcher_execution_context (from `self`
  at the point the matcher method was called) was odd,
  and turns out never to have been needed.  It was
  introduced in abba43932a821b3c7f60edfe247ee1917dbf1dac
  but wasn't actually needed there (as the spec added
  in that commit passed when I tried removing it).
* Given that it must be set (as `respond_to?` assumes
  it has been set), it was odd to have an extra
  attribute that gets set after instantiation.
  Far better to make it a constructor arg.
* No need to expose it as public method.

~~This needs a 2.99 PR to deprecate the attribute before being merged~~.