Rune - Fix livelock on heavily contended locks
* Fix a livelock on heavily contended locks. When waking up a list
of blocked threads, a livelock situation can develop where the threads
are placed back on the list asynchronously, preventing the iterator
from ever being able to finish scanning the list.
* Fixed by issuing the wakeup in two passes. The first pass moves td's
to be woken up out of the list and onto a safe list. The second pass
wakes the tds up via the save list.
* Also fix Declaration layout (@rune_decl...), we added two fields.