[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'

**UPDATE 2**:
- applied feedback
You are right, I've made the necessary changes now. 

As a side-note; not every possible type needs to be handled, as you can see in my latest change, I just had to add the casting to string as the last resort to make that happen. 

Is this sufficient in your opinion?