Added possibility to swap IConsole

This is to facilitate pluggable `IConsole` (i.e. plugging in Web Console but still using `scriptcs.exe`).

This is a bit of a chicken and egg - as default scriptcs console (System.Console) is needed initially to parse arguments and initialize everything - so, similarly to what we do with `FileSystem`, we initially use the default console to init scriptcs runtime, and then swap in the builder.