Major refactorization and clean-up checkpoint.

Remove fields and constructors for different data sizes. Now a
single constructor only requires minimum and maximum lags and
the data is passed in to certain methods. No copies are maintained
within this class.