Generalized AlgorithmBuilder test to try applying the same move twice for every move on every puzzle, and assert that the second move is considered "redundant".

This broke megaminx (we didn't have another name for the state achieved by doing "R++ R++", so I invented "R-" for this).

CubePuzzles also took a little bit of work to fix, as the getScrambleSuccessors() method would return B for puzzles like 2x2 and 3Bw for 6x6.

Also fixed a bug in AlgorithmBuilder where we would fail to detect redundant moves when we are out of normalized state.