Added set_sheet_type and set_projection_type methods to Model

These methods all sheet and projection types to be overridden at runtime
as required e.g to allow one class to switch between two different
models.
The setup_training_patterns method now accepts parameter overrides

Parameter overrides allows a subclass to customize particular aspects of
the training patterns without having to redefine an entire
PatternCoordinator.
Fixed broken import in gcal_legacy.ty