Add a new per-session flag, WT_SESSION_CAN_WAIT

@michaelcahill, here's the change we discussed, plus a couple of semi-related odds-and-ends (all on separate commits, so you can cherry-pick or revert easily if you want).

Reference #1152.
No, this doesn't have anything to do with flushing leaf pages (at least I think that's what you're asking).  Basically, if `os_cache_dirty` is configured, we periodically flush the OS cache based on how many bytes we've written to the OS.  Most threads shouldn't be asked to do that work (for example, if you're holding the schema lock, or you're an application thread trying to get work done, because the call to flush the OS cache can take 10 seconds).  But, if an application called WT_SESSION.checkpoint, it's likely doing a ton of I/O, and it's reasonable to make it an exception to that general rule.  Feel free to rework that comment to make more sense to you!