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.

This *significantly* improves the gameplay experience when streaming games from HTTP, because you get natural loading screens or short stalls with backgroud music playing (as would happen on a PSP) rather than lag.

I'm also thinking to pull in my io-minor2 changes (potentially making it more accurate now/future) as a "realistic" timing option.

Since fast is probably the best compromise between safe and not having annoying loading screens, I'm not sure there's any good way to avoid an option.  Would appreciate any suggestions on better phrasing.

-[Unknown]
Okay, rebased it in and option is used now.  REALISTIC may be buggy but should be off by default.

-[Unknown]