more clipping fixes

previously the objects touching status wasn't being written back,
causing a moving object to continuously be fighting back and forth -
eventually working it's way through a wall.

the touch function now specifically writes back to mark the object as
touching in a direction so that the dx figure gets zeroed