Execute the remaining callbacks during SelectServer shutdown.

Previously we just deleted the callbacks without running them, but this means
that callbacks which themselves free memory aren't run, and we leak in some
test cases. Some tests work around this with a final call to ss->RunOnce() but
that's lame.

Also this improves the normal code path by taking the lock once, rather than
once for every callback queued.
Update the Execute() documentation to reflect the new guarentee.
.swap is C++11 only. Use the old, slower method of copying queues.
Now that SelectServer executes callbacks during shutdown, fix some tests.

Introduce a DrainCallbacks method to run all pending callbacks.I'm not sure
this is a good idea but it's the best I could come up with.
Drain the callbacks from the OLA server during shutdown.
Fix some other instances where we may delete the object prior to the callback
being run during shutdown.
Merge pull request #487 from nomis52/master

Execute the remaining callbacks during SelectServer shutdown.
Resync with trunk