make ConsoleReporter handle both stdout and stderr

scala and scalac always had a problem with deciding where to send
messages in the console and just sent everything to stderr, so it is
time to improve that:

ConsoleReporter now takes two PrintWriter, one for errors/warnings and
one for normal messages. The short constructor sets them to stderr and
stdout, respectively.

This finally makes scala(c) ouput like any normal program. For example:

$ scalac -help > /dev/null # will now print nothing

$ scala -nc -e "val" > /dev/null # will print an error message

$ scala -nc -e "println(1)" > /dev/null # but this won't

People calling the old constructor (with a single writer) get no change
in behavior: everything goes to the writer.
SI-1264 make CompileSocket send the right things to stderr/stdout

This properly splits the output of fsc (from `scala -e`, scala worksheet,
etc.) between stderr (for warnings and errors) and stdout (for the
rest). With this change, fsc behaves the same as `scalac`.

This makes the fsc server prefix messages with the destination
([err]/[out]), and the client socket strip them and send the rest to the
client stderr/stdout.