[Console] moved --help support to allow proper behavior with other passed options
[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.
merged branch fabpot/console-fix (PR #7982)

This PR was merged into the master branch.

Discussion
----------

Console fix

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | yes (possibly)
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | symfony/symfony-standard#256
| License       | MIT
| Doc PR        | n/a

Everything is explained in the commits.

Commits
-------

bd0c48c [Console] moved the IO configuration to its own method
fdb4b1f [Console] moved --help support to allow proper behavior with other passed options