Fix typo in Build class
Change handling of solution period

Modify initialise() function to load a principal `span` period alongside
an optional `past` period. This allows for a default solution period,
even for dynamic models.

Update base Model class to handle new default solution period
implementation.
Implement build code

Add code and functions to generate code blocks to insert into template
script.
Add solution-state variables

New model variables: `self.initialised` and `self.solved`. These track
the state of the model.