Another pass at cleaning construct_circuit
Starting to test CNot synth
Cleaned Lwr_CNOT_synth
Added slicing to xor_funcs

The slice index is from left to right, by column.
The value is the reverse binary value.
Tested LWR circuit generation, and added stringify_gate util fn
Flipped back the inverted gate inputs for LWR forward direction
Tested CNOT_synth

I finally figured out which was was which for the target and control
lines.
I also had to debug a implicit promotion from 4 to xor_func{4},
which was causing vector<xor_func> v{4, xor_func{{false, {1,1,1,1}}}};
to create a vector of size 2, not of size 4.
Still todo is understanding how m is picked in CNOT_synth.
Moved most of the partition code from matroid.h

It now lives in partition.cpp,
and is no longer templated, since that wasn't important for TPar,
and created uglier error messages.

Also fixed a test or two.
Added retreive_linear_dep test
Silenced partition tests