adds a switch for mirroring all console messages to a file

FWIW

This has proven invaluable to me in developing Bau today. In the Bau acceptance tests I shell out scriptcs.exe and by passing this switch I can log out the console and debug things.

In REPL, it also picks up both input and output which is kind of cool. Could be quite a useful diagnostic tool when people have issues, i.e. they can log the console whilst reproducing the issue or we can request that they do it.

![image](https://cloud.githubusercontent.com/assets/677704/2812782/d7cbb4b2-ce6e-11e3-8b88-8f502ec9f10f.png)

![image](https://cloud.githubusercontent.com/assets/677704/2812783/dac64bc8-ce6e-11e3-99ce-253e839ff87a.png)

closes #656