refactor PyUpr run_suite

Addresses problem where a test suite constructor needs an argument
that other test_suites may not need.  Currently we would have to
add the new param in the base ParametrizedBaseCase or write a custom
__init__ method (as was done for rebalance test).  But that assumes
we call the right constructor from pyupr and have to do so for each suite.

With this change we can ensure args needed by BaseCase exist and
allow suites themselves to consume any additional args they care about.

Change-Id: Ia0c901104a36d5714dfabecf21a4c006cc27e8e4