Refractor and remove dead code
Simplified version

Needs to be vectorized.
Attempt at making things more functional...

Speed has been cut in about half so far. Should be able to drop by
another order of magnitude.
Vectorized CovariateGenerators
Remove dead code from CovariateGenerators
Refractoring and consistency work
Add prioritize covariates functionality