fixed some tricky timing bugs involving the implementation and use of the ready queue.  these were causing incoherence between the interrupt and queue status.  When running both in BSIM and on the Zynq platform I always see at leaset one non-zero queue status when the shared interrupt is asserted.  Sadly, the tests still wedge the zynq platform.  I think there is some kernel magic involving shared interrupts that I am not aware of