Refactor validate_inputs logic into __errors__
Refactor validate_inputs from BamReadcount/Run.pm to Expert/CommandBase.pm
ReporterPlan now uses __errors__. Plan-validate.t has less specific error checking for now.
Plan.pm updates to use __errors__.

Plan.pm still calls SUPER::validate_self, should eliminate this in the
next commit.

Plan-validate.t no longer relies on throws_ok, but does not yet check
for contents of __errors__
Plan/Base.pm now uses __errors__.

No longer have to validate SUPER or children in validate_self, because errors will
gather super and children's errors.
WithHeader.pm now implements __errors__
no longer validate SUPER in self, __errors__ does that work
remove now unused test_bad_plan_old
Call ->object more safely in ReporterPlan
Once again check specific error output.
Refactored up validate_self
eliminate validate_params, refactor up validate
remove duplicate code in validate_self, call SUPER instead.
documentation
Remove validate_inputs, inherit from ComponentBase to avoid code duplication
remove unused param pass for __errors__
Refactor logic from validate_with_plan_params into plan_params_errors which returns UR tags
Test data was out of date - added file_name to reporters.
Test helpers out of date - experts do not have properties directly
Reporter/WithHeader - Return errors instead of dying