Prepare for an introduction of a primary event.
Refactor changes with the introduction of a primary event
Introduce types for primary events.
Initial primary events are implemented. Basic, House, Undeveloped.
Documentation of the newly introduced event types.
Replace leaf checking function with gate checking function.
Better error messages and input file names for testing.