[FrameworkBundle] Refactored assets:install command, tweaked output

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Before:
![screenshot from 2014-12-21 09 27 48](https://cloud.githubusercontent.com/assets/162986/5517698/3f6e62e2-88f8-11e4-9d9f-f90877058431.png)

After:
![screenshot from 2014-12-21 03 41 21](https://cloud.githubusercontent.com/assets/162986/5517700/52892d4e-88f8-11e4-8944-3461c4318b06.png)
![screenshot from 2014-12-21 03 37 20](https://cloud.githubusercontent.com/assets/162986/5517702/58ea047e-88f8-11e4-8bef-40c65c130012.png)

I think the output is much readable this way. It slightly changes the behaviour as well, instead of falling back to hard copy when relative symlink does not work it will fall back to absolute symlink and then to hard copy. When hard copying fails it does not stop immediately. I'm not sure about BC and it can be a bug fix as well as the code was superfluous in some cases inside the catch block [@AssetsInstallCommand.php#L110](https://github.com/symfony/symfony/blob/c9129dd70f4c5ea5e28bc3f6c0de3dbd669e0a21/src/Symfony/Bundle/FrameworkBundle/Command/AssetsInstallCommand.php#L110) IMHO.
It seemed awkward to me to call `$this->getContainer()->get('filesystem')` in a recursive function. It is coupled to execute not configure and I think that is fine because it is called when the command runs and everything is private so it can be used only in this command anyway.