Begin refactor of models into regular and alternative versions.

The alternative adjoint version has two correct implementations, while the alternative
forward version is incorrect (just a copy of regular version).