[Security] Use hash_equals for constant-time string comparison (again)

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Use the `hash_equals` function (introduced in PHP 5.6) for timing attack safe string comparison when available.

Add in the DocBlock that length will leak (https://github.com/symfony/symfony/pull/11797#issuecomment-53990712).
The current PHP implementation implicitly casts inputs to string: https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Security/Core/Util/StringUtils.php#L39

If you don't add the cast, to behavior of the function will change (throw warning, will not throw anything before). This matter especially if arguments are objects implementing the `__toString()` method.