extract internal partest behavior from ConsoleRunner

This splits ConsoleRunner in two: AbstractRunner contains most of the
behavior but doesn't assume (or at least less that before...) that we
are running from the command line. ConsoleRunner extends it to do the
same as before.

Now SBTRunner also extends AbstractRunner (instead of AntRunner), to
get support for --grep, --update-check, and all other options, for
testing an explicit file, and for pretty output.

This requires changes on the scala-partest-interface side too
(SBTRunner's public API has changed).
improve mapping from partest's TestState to sbt's Status.