[Mac] Improve Cocoa event handling

The first commit allows UpdateFrame and RenderFrame events to be raised as expected.

The second fixes key repeat on KeyDown events and connects the old Keyboard.KeyDown/Up events.

The third adds initial support for retina displays. (The internal surface appears to be misaligned, probably because Width/Height properties report scaled coordinates.)

The fourth (and final) patch changes CocoaNativeWindow.Width and Height to report pixel (unscaled) coordinates, instead of (scaled) points. This aligns the Cocoa backend with what we do on the Windows and SDL2 backends, and makes calls to `GL.Viewport` work as expected.