Explicitly require TAP::Stream 0.44

Some uses of the toolchain (like our internal minicpan manager) will get very
confused without this version number. In our case, when I added a new TCM to
our minicpan, it didn't follow the TAP::Stream dependency for some reason. I
suspect this is because there was already a version in our minicpan as part of
the _old_ TCM.

This explicit dependency should force dependency resolution to see the
separate distro (and it won't hurt anything).
Make it possible for a test class to provide multiple instances of itself to the runner code
Make it possible to pass args to test class when instances are being created.
Make tcm_instance_name protected - _tcm_instance_name
Move _tcm_run_test_method so it comes after the code that calls it
Add _start_benchmark call for class report that I accidentally removed
Renamed TCM::Report::Class to Report::Instance

I also changed the relevant methods in that class, as well as other classes
that use this class somehow.

As part of this, I renamed various $report_class vars & report_class
attributes to instance_report. The former naming is very confusing, since it
can be read as "the class to use for reports" as opposed to "a report on a
class", whereas "instance_report" is clearly "a report on an instance".

I didn't add any back compat bits since the reporting code is clearly marked
as alpha and unstable in the docs.
Update comment to explain why we need grab the original Test::Builder output
Changed how instance naming works

Instead of having classes provide a _tcm_instance_name method, we'll simply
expect constructor param sets to be returned as a hash. They keys are the
instance name and the values are hashrefs of constructor args.