refs #4709: openssl_random_pseudo_bytes in Security::token

More secure CSRF token generation, using openssl_random_pseudo_bytes with a fallback to uniqid if the function is not available.

This is more secure due to the fact that uniqid relies on microtime, which is predictable.