Adds control logic for signal pieces.
Makes the signal logic ocmpile and adds a unittest setup to it (which still crashes).

Adds the HandleInitState to the default set of actions an automata should do.
Adds the ability for creating an automata runner without a thread. THis is needed for unittests.
Makes automata tests more robust:
- keeps the program area for debugging access.
- requests no thread to be creates. THis avoids a race when too slow running caused conflicting wakeups.
- waits for event thread before killing the current automata runner.
Fix bug in sequential tracks.
Adds first test expectations to signal test.
Adds occupancy copying logic for the detector track. While this is not strictly speaking neeeded, it allows us to handle positive -> negative flips as route release which is very helpful.
Clears route properly on signal and detector section.

Continues signal test.
Fix flakiness bugs
fix bug related to second route through a signal.
Adds a debug facility that prints out all bits that are set.
Finishes signal test.
clang-format signal test.cc
Adds a test that runs 100 trains in succession.
Adds straight track with raw detector (using debouncer)
Factor out StraightTRack into a separate interface to allow for combined blocks to function as a single straighttrack for binding purposes.
Adds some comments.
Makes raw detector const in StraightTrackWithRawDetector.
Adds a new automata specialization that can be used to simply run the automata of a trackpiece.
Fixes compilation errors in bracz-layout3h and makes it as default flashable.
makes flash a phony target.