Add support for bounded STP work queue

Added a configuration property (MaxQueueLength) that can be used to
enforce an upper-bound on the size of the workItemsQueue.

If the property value is null (default), no upper bound is enforced.

Only applies to SmartThreadPool instances (isn't used for
WorkItemsGroups).