Redoing ActiveObjectScheduler to remove custom lockfree container

This one needs a solid code review.  The main change is to the locking and containers in the scheduler.  Everything else is just deleting the custom lockfree containers.

A couple of points:
1) remember that the scheduler run() function is called from the worker threads in the threadpool.
2) I'm pretty sure he had an error in his signaling (which was turned off by a #define) because he used the same mutex for thread waiting as for the container locks....which seems totally wrong to me and was causing a deadlock when running tests.  So, I added a second mutex.

Let me know if you there is anything we can do to make it more readable, but I think it is much better now.