Added line-oriented output filtering feature.

If there's a file ~/.sbtignore and the 'shell' command was
not given to sbt, then output filtering is triggered. See
this commit for details, and sample before/after output at

  https://gist.github.com/paulp/e9be71c7b6cad9b36fe3

The usefulness is hampered by the many noisy messages which
span more than one line, but which include lines which are not
recognizable without knowing the context, for example: many
useless warnings, scaladoc warnings about where the * is or
chastising people who aren't listening about variables which
don't exist, graphviz flailing around.

To deal with those would require something more sophisticated,
which I resist because the entire mechanism is Doing It Wrong.
We can't let sbt throw away all the relevant information and
then try to reconstruct it a line at a time. It's madness.

However that probably requires some kind of sbt extension
which itself defeats an even more important goal - that I be
able to to quiet sbt's blizzard of noise reliably and without
creating another of the "oh I have version foo.x not bar.y"
adventures which fill our days.

It's also tempting to perform output transformations as well
as pure filtering, because sbt never saw an absolute path it
didn't like and the aggregate tax that sort of thing places on
comprehension is way too high.