Fix wraparound logic
#114 (closed) The new logic is:
First keep sites in the fundamental domain of the original symmetry builder.symmetry. Every site that is stored and every a site of hoppings (a, b) should already be there. Wrapping back of b from a hopping is done by b_dom = builder.symmetry.which(b), then the part of b_dom that is in the remaining keep translation direction is discarded, resulting in a translation purely in the wrapped directions. The wrapped back b_wa = sym.act(-b_dom, b) is guaranteed to be an image of a site in the original FD under a kept translation.
In the end we shift everything to the FD of the remaining 1D translational symmetry.
Closes #114 (closed)
Edited by Joseph Weston