refactor

I am a bit uneasy about the optimization introduced in
unrotateForMove() -- namely, instead of unrotating by doing four reverse
rotations, we are detecting the edge case of zero forward rotations, and
bailing out. The (four-minus-zero) reverse rotations was working, just
"seemed to be unnecessary cycles..." but premature optimization and KISS
and all that.