Remove Objective-C++ code and instead use a wrapper to ObjC APIs.

 * qmake does not pass C++ flags when compiling ObjC++, so C++ and
   ObjC++ object files are not ABI compatible.
Update the cursor position and image atomically.

 * This bug was very noticeable when I was testing the OS X "no cursor"
   code path.  We were updating the image first, then the position, so
   when the cursor disappeared, I saw the old cursor jump to the
   top-left of the player before disappearing.  Now, whenever the cursor
   image changes, we clear the cursor canvas, move it, then draw the new
   image.

 * Another case that could have flickered:  suppose the mouse isn't
   moved, but the cursor changes from, say, an arrow to an spinning
   ball.  The hotspot changes, so the image needs to be moved.