add checks to movers to catch moving things that aren't optimizable

and fix a bunch of tests that were doing exactly that. And officially document doing so as undefined.

close #255