Spin dequeue in unlock to catch waiting processor.

This was omitted from the previous change, introduced problems.
Updating benchmarks to use exit_with.

This eliminates the problems with shutdown for now, really it's just a
hackish fix though, until more thought goes into the shutdown.
Adding asserts in executor.
Remove commented out code from private queue.
Removing redundant spin from processor.
Ifdef'ing the internal queue used in task mutex.