Safer random byte generator.

Outlining actually unique random byte generation. The
PHP fallback still needs some touching later on. It currently
wraps around the password generator.

This will be used to generate keys and seeds for sessions,
encryption and tokens, replacing our current limited
MD5 hash approach; it desperately needs proper
replacement.

The generator wraps around mcrypt IV, OpenSSL and
reading directly from /dev/urandom. If no of those works,
it falls back to PHP implementation.

git-svn-id: http://textpattern.googlecode.com/svn/development/4.x@5605 2fea6a4d-a838-0410-917b-93a53c48e9d2