quartz: set mouse tracking area based on input shape

This implements setting the input shape of a window which translates
into setting a tracking area for the content view of the top-level
window as needed. Additionally, for windows which are transparent
(e.g. using csd), forcefully do not ignore mouse events in said
tracking area to avoid spurious mouse enter/exit events leading to
strange loose of focus issues.
quartz: invalidate shadows after updating tracking area
quartz: remove unused variables
quartz: make GdkQuartzNSWindow implement NSWindowDelegate
quartz: use get_device_position instead of deprecated get_pointer