What I'd like to have is:

1. A Test::Run::CmdLine front-end initialises a Test::Run::Obj back-end.

2. A command-line interface class instantiates a
Test::Run::CmdLine derivative plus Plugins class and in turn lets it run.

3. This front-end class instantiates a back-end class possibly adding plug-ins
to it.

4. It calls this class and let it run.

Where everything should be found?
---------------------------------

Test::Run::CmdLine plug-ins should be under Test::Run::CmdLine::Plugin::.

Test::Run::Obj plug-ins should be under Test::Run::Plugin::

The Test::Run::CmdLine interface will be called Test::Run::CmdLine::Iface.

T::R::CL::I will initialise $ENV{'HARNESS_DRIVER'} (or $args{'driver_class'}),
and load it with the extra plugins $ENV{'HARNESS_PLUGINS'}
(or $args{'driver_plugins'}). Then it will push Test::Run::CmdLine to the end
of its @ISA.

Test::Run::CmdLine will initialise the class that the plug-ins tell it to
(or to Test::Run::Iface by default), load it with all the extra plug-ins, and
finally push Test::Run::Obj to its @ISA. Then it will let it run.

A plugin always resides under Test::Run::Plugin::.