Redo streams-to-logs conversion to catch ANSI codes always

We had two separate mechanisms, one for the sbt ConsoleOut thing,
and a different one for System.out / System.err. The System.out/err
one did not remove ANSI codes and wasn't very clever about trying
to get the log events on newline boundaries.

This patch centralizes all the stuff in ServerLogging.scala
and tries to share some more of the codepaths. This should
in theory get the ANSI codes out of stdout/err.