Small reorg of noinv parallel to make logic more clear
Add a function to convert to dual_basis for later use with inversion bma
Add `BCH_MUL_POLY, change `BCH_MUL1 to utilize it.
Don't bother using syndrome expansion for DEC, just open code it.
Change standard_serial_multiplier control signals

This allows more efficient LUT use.
Move some generic modules to util.v

Also add reverse_words/rotate_left/rotate_right
Utilize `BCH_MUL_POLY and `BCH_MUL1 in lfsr modules.
Combine syndrome expansion and shuffling.
Fix syndrome method1 calculation for register sharing.
Add compare_cla for comparisons utilizing CARRY4
Add config.vh for things like LUT size and hardware optimizations.
Rework bch_error_tmec to accumulate and pipeline results.
Break matrix computations out into matrix.v/matrix.vh
Add versions of bch math/matrix operations that take a const argument

Its unfortunate, but the tools are not very good at optimizing for constants in
these cases, even to the point where we need to manually pack terms.
Utilize const operations in bch_chien.
Utilize const operations in bch_syndrome_method1
Fix Makefile REG_RATIO typo
Add Xilinx simulation primatives to makefile, this is necessary for CARRY4
Rework tmec benchmark inputs/outputs into ring buffer to allow better placement.
Don't remove intermediate files when benchmarking, we now handle that properly