Try to ensure remove unbalanced calls to [NSCursor un/hide]

Mostly an attempt at making the NSCursor issue a non-issue by removing
the need for balanced hide/unhide calls. Should ensure there are no
unbalanced cursor visibility issues by simply letting the delegate
decide when the cursor is hidden.

This assumes the delegate isn't replaced at some point, but that seems
like something most people wouldn't do.