Locked

Recomendation: This should become a new block, StateChangeLocked. We should subclass and overload the process_signals function

This change locks the signal handling function until all signals have been processed.

Chris and Garrett have been having issues with "signal crossing", where a 10k simulator's worth of signals won't be processed fast enough and the signals will overlap. When the signals overlap, it causes the value to switch back and forth rapidly.

This prevents this entirely, and is therefore very useful functionality.