[OptionsResolver] Exception doesn't report the actual type used

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/issues/11020
| License       | MIT
| Doc PR        | -

Note to moderator: Stopwatch tests are failing randomly here; not related to this PR!
For more info, see https://github.com/symfony/symfony/issues/10454

**UPDATE**:
- moved creation of printable value and type to separate methods for cleanliness
- improved printable value by making a difference between an empty string and NULL.
- restricted wrapping in quotes to only string values; further differentiating with other types.
- when printable type is an object, it's classname get's returned instead of just 'object'
Care to clarify the use of 'should'? My, admittedly lame, reason for using the ``is_null`` was that I liked the esthetic of having only is_-checks in that method, but perhaps there is a downfall to it that I didn't know of compared to null?
Don't forget this method would only be used for outputting a more friendly exception, and so would never be used the same amount of times the others are.