BitcoinTestFramework instructs developers in its docstring to override
set_test_params and run_test in subclasses while being sure NOT to
override __init__ and main . This change adds a metaclass to ensure
that developers adhere to that protocol, raising a TypeError in
instances where they have not.
closes #12835