Add code to interrogate node readers

The idea here is that I want to be able to figure out the set of nodes
that read from a given node.  This is necessary to implement
registers: we can't allow the write to a register to commit until
every node that is capable of reading from that register has already
executed.  Essentially this just means we deal with RAW hazards
(within a single cycle of the emulated design) in software.
Schedule register writes aftere reads

This is necessary to avoid RAW hazards that would result from not
atomicly executing each cycle of the target circuit.
Don't defer register writes in scheduled sim

Now that the scheduler can properly schedule registers we can modify
the simulator to act like the hardware will WRT these registers.