[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).
Btw, I don't know a way to indicate in a PHPDoc "string or an object implementing `__toString()`" and `mixed` is not appropriate because passing an `array` will throw a notice and object without `__toString()` method will throw an error (http://dunglas.fr/2014/02/casting-php-types-to-string/).