Use the ModelInput class to collect
all information that serves as training input to a model
in one place.

The information in a ModelInput may be incomplete.
It may even be completely empty.
When the model is fitted, any information in the ModelInput
is combined with the supplied data to produce the
prepared fitting data (design matrix).