fix #264 (bad movement masks), improve tests

Fixed silly movement mask bug.

This breaks the "legend of zokoban" test -- I made test failures now give *some* information (a state diff), but its usefulness & readability is limited for large states. Not sure precisely what's going on, it's likely that some part of Zokoban was experiencing the same bug. Hopefully it doesn't _rely_ on it.
this means I can't copy/paste test level data directly back into the editor anymore, right? (for when something goes wrong, to see what's gone wrong).  admittedly first I have to replace \n with actual newlines, but it's a simple enough 2-step process.