re-organize code: group rules and operators.
fix a bug, target should be first.
make MyriaAlgebra instantiable.
add hypercube optimizing.
make joined field hashable.
add repr for ZeroaryOperator.
rename join_map to conditions
add hypercube shuffle rule.
fix: first check type
fix a bug in operator test.
add unit test for nary join related rules.
fix style.