[Console] moved the IO configuration to its own method

The IO configuration was also moved earlier in the process so that
options are taken into account as early as possible.

That's useful for instance in Symfony FrameworkBundle, where
commands are registered in the doRun() method. If an exception
occurs during registration, the -q, -v, ... options would not
have any effect.