Eviction under load

While looking at #1068, one thing I noticed is that the eviction server thread can get "stuck" in eviction (particularly splits), and that other threads stall.  This branch attempts to address that in two ways:

1. if other threads are waiting to do eviction, the server thread just wakes them up and keeps scanning for more pages to add to the queue; and
2. an idea of Keith's: application threads only get involved with eviction when their session is quiet if they have missed in the cache recently while it was full.

For me, this branch helps quite a lot with the workload from #1068 (separately or together with #1082).
One of the big problems in this workload is that the eviction server thread chooses a page to evict, then decides it needs to split, then gets stuck waiting to lock the parent page.  While the server thread is spinning there, the queue drains and all activity stalls.

There is some overlap between this part of the change and checking if the condition variable has waiters (which I think is equivalent to the count you're describing).  I made this change first, it may no longer be necessary.