random.js: Use window.crypto.getRandomValues() as seed if available

This is a strong source of entropy, readying from /dev/urandom or equivalent.
Always use strong source of entropy if available.

- Use window.crypto.getRandomValues directly in prng when
  reseeding if there is not enough data in first pool.
- Do not collect potentially weaker sources of entropy if
  window.crypto.getRandomValues is available, though Fortuna
  should offer some protection against an attack here?
- Default (random.js) plugin relies solely on
  window.crypto.getRandomValues if available now; this is
  presumably the behavior apps using JS will take.