o-o: inject class, not instance; import cleanup

- run() takes a class object, not an instance, so
  that the instance can construct it at an
  appropriate time. This lays groundwork for
  moving the argument parsing into the Cli class,
  which simplifies the various argument lists and
  the applications themselves.

- Remove unused imports from "pw"