Feature/uniform autodiff pattern

Summary
-----

Unify the autodiff/model interface for first-order and higher-order differential operators.

The existing interfaces have not been removed so the update is backwards compatible.
Once we update the optimizers and finite difference methods we can deprecate the
existing interfaces completely.  Note that this will require writing some new interfaces
that explicitly ignore the Jacobian.

One test, ensuring that domain errors propagate correctly, has not yet been fully
implemented as this requires using a probability distribution to throw the domain
error and no distribution is currently compatible with the higher-order autodiff.

Intended Effect
-----

No user-facing changes.  Code should perform exactly as before.

How to Verify
-----

Run any model with the same seed before and after to validate exact same result.

Side Effects
-----

The funk was given up.

Documentation
-----

No changes.

Suggested Reviewers
-----

Anyone.