Revert "optimize lCRP"

This reverts commit 72713ebbdd48f527bf8576deb56dda93e402760b.

Gives "ERROR: arrays could not be broadcast to a common size"
Revert "change loop to built-in function for performance"

This reverts commit 0702fc89aa91947ff73faa4d3e27ded17b134fb9.

This can be done with replacing class to vote_suff! with calls to vote_suff.
Revert "change loop to matrix for optimization"

This reverts commit e8421ab2a6dee75236b40bd9a4c72d36d8416a09.

We don't actually know the size of the suff. stats
Added type info

Instead of passing around arrays, we can pass around a single object
which should reduce some of the memory issues. Also makes it easier to
remember what the signature is. See the speedup below, note the gc time.

Before:

elapsed time: 61.717214604 seconds (14843332032 bytes allocated, 11.14% gc time)
elapsed time: 11.240679816 seconds (2317138320 bytes allocated, 9.65% gc time)
elapsed time: 8.265007073 seconds (1627805960 bytes allocated, 9.07% gc time)
elapsed time: 9.034075659 seconds (1543250080 bytes allocated, 8.37% gc time)
elapsed time: 8.909488949 seconds (1442406792 bytes allocated, 9.06% gc time)
elapsed time: 6.661215049 seconds (1266183320 bytes allocated, 8.99% gc time)
elapsed time: 6.765895623 seconds (1297964984 bytes allocated, 8.85% gc time)
elapsed time: 6.30962675 seconds (1209946768 bytes allocated, 9.12% gc time)
elapsed time: 5.40978947 seconds (1026820376 bytes allocated, 8.79% gc time)
elapsed time: 5.558173021 seconds (1055362584 bytes allocated, 9.05% gc time)

After:
elapsed time: 42.010636623 seconds (4596286412 bytes allocated, 5.35% gc time)
elapsed time: 6.562058985 seconds (762523792 bytes allocated, 5.92% gc time)
elapsed time: 3.3824318 seconds (374194080 bytes allocated, 5.38% gc time)
elapsed time: 2.366796598 seconds (248907160 bytes allocated, 4.80% gc time)
elapsed time: 1.732177613 seconds (172428104 bytes allocated, 5.25% gc time)
elapsed time: 1.578563754 seconds (157042016 bytes allocated, 4.31% gc time)
elapsed time: 1.153674244 seconds (110850864 bytes allocated, 5.91% gc time)
elapsed time: 0.940607997 seconds (89060376 bytes allocated, 4.82% gc time)
elapsed time: 0.847390642 seconds (79410912 bytes allocated, 5.35% gc time)
elapsed time: 0.738013406 seconds (72065912 bytes allocated, 3.07% gc time)