Make {move,rotate}_piece more robust and straightforward

Just return success or failure instead of whether to do a drop or not
Replace with_drop with something simpler