kernel - Add sysctl kern.random

* Add a sysctl kern.random which returns random data.  This can be used
  when /dev/random is not available (e.g. a chroot and no /dev mounted in
  the chroot).
libc - Fix bugs in arc4random, improve arc4random() and srandomdev()

* Fix a bug where arc4random() was not using the entire 128 bytes of random
  data it had read from /dev/random.

* Increase the amount of state incorporated by arc4random_stir()
  from 128 to 256 bytes.

* Fix an important issue with both srandomdev() and arc4random().  When
  /dev/random is not available these functions now back-off to the new
  kern.random sysctl to obtain random data.

  This allows these functions to work in chroot's that might not have
  /dev mounted.

* Do not try to incorporate random stack data.  This is stupid, the stack
  data is not random.