The ModelParamsBase object is a generic container for storing the parameters of a
neural network, regardless of the layout (e.g. shallow or deep). This is made possible
through the introduction of a generic hidden layer type, H, that allows us to define
aliases and additional traits for contraining the hidden layer type. Additionally, the
structure enables the introduction of common accessors and initialization routines.