CBD-1051 Global IO Manager Common Thread Pool

This changes enhances the global IO manager by introducing the
common shared thread pool and maintaining a global disk read
queue and a write queue per bucket priority (i.e., High, Medium,
Low).
Threads basically visit any disk read or write queues if there
are any IO tasks waiting in the queues. We also allocate more
threads to the buckets that have higher prioirties, but also
prevent the starvation from occuring in the low priority buckets.

Change-Id: Ic44c03250d11b87db7f5497503915bc56a1c7a18
Reviewed-on: http://review.couchbase.org/28409
Reviewed-by: Chiyoung Seo <chiyoung.seo@gmail.com>
Tested-by: Chiyoung Seo <chiyoung.seo@gmail.com>