Services Thread/Process Pools

Related to issue #209 

Adding process and thread pools for service processing. There is now a new field in the control panel/services panel with a configuration parameter to specify the maximum size of the pools.

I am pushing this up to the distributed_services branch because I have only tested this on the distributed_services branch. I am sure this would also work on master but I didn't want to deal with the merge conflicts. Note that the apply_sync() method puts tasks on a Queue, so work threads/processes should pull the tasks off the queue in the order they were put in but not necessarily complete processing them in the same order.