model.frame returns a data.frame object for use in lmabc() and similar functions.
It reimplements the first few lines of lm() to properly format the formula and data parameters.
If only formula is passed, all variables must be vectors in the environment.
If formula and data are passed, variables are first pulled from data, then filled from the environment.