Add an option to prevent cpu stall on slow IO.

This is good for any slow storage, including:
  * Hard disk spinning up.
  * Generally slow (cheap) SD cards.
  * HTTP or Samba streaming.

May possibly cause bugs in some cases where timing is unrealistic.  That
being said, as long as the game is a UMD game, and there's caching (could
enable memory caching for storage), it should not be a problem usually.
Properly unschedule IO events on file close.

Oops, was waking threads but not bumping events.
Typo.
Add basic infrastructure to time io better.

This allows the filesystems to more accurately control timing.
But they're not actually doing it yet (same timing as before.)
Very rough approximation of UMD seek delays.
Make realistic timing optional.
Merge pull request #7227 from unknownbrackets/io-minor

Add an option to prevent cpu stall on slow IO