#232 Fixes for allocator and dispatcher implementations built on top.

It appears reference counting was doing some funky things and getting counts off. Also moved some execution code around a little to make it more efficient for doing tail recursive calls from the task queue. Also tried to consolidate as much of the Dispatcher code as possible into single, reusable chunks and only subclass and override the bare minimum required to get the functionality desired.