Implemented a bounded work queue

I've added a wrapper around IWorkQueue that sets a bound on the number of items that can be in the queue. Please review.