Fix service decoration

The way wrappers are applied currently is broken: the service definition is copied to a different id, which means that referencing the wrapper service directly would give you a different instance defined in the same way (with a different instance of the inner service and so on).
However, there is at least one valid use case for referencing it: configuring the wrapper at runtime in a controller.

This fixes the logic by reusing the decoration logic shipped in Symfony 2.5 (and used since years in some bundles)