Define test methods directly on instance

A few individual specs required specific #before_run/#run/#after_run
methods be defined. These methods were dynamically added to the instance
under test by extending the instance with an anonymous Module that
included the required method definition:

`instance.extend(Module.new { def some_method; do_things_here; end; })`

This worked, but is both more difficult to read and understand, and has
the unintended side-effect of including an unnecessary Module into the
instance's singleton class.

Instead, use an approach that is more clear and concise, and which
doesn't modify the singleton class's ancestry. Simply define a method
directly on the instance itself:

`def instance.some_method; do_things_here; end;`
Change: #before_run/#after_run => #before/#after

I prematurely anticipated additional hooks around #run. Implementing additional
hooks, or planning for their inclusion, is outside the scope of the current
change.