Split "bindMove" watchXYIntersection and updatePosition methods

Only watch for XY intersection if necessary, which allows us to
partially support z circle movement without xy