cocoa_common: use cocoa APIs to go fullscreen

This removes a bit of ugly code and bookeeping which is never bad. `drawRect`
needs to guard against different window instances since in fullscreen the view
is wrapped in a fullscreen window provided by the toolkit (a instance of
NSFullScreenWindow to be precise).

The event handling was moved to the view so that it can still get all the
events when in the fullscreen window. Ideally these should be moved to
some NSResponder subclass within macosx_application and made available even
when no window is present. I refrained from this because "small steps".
macosx_application: use @autoreleasepool

I don't even want to know how this worked. It scares me a lot.
cocoa_common: fix a bug in window initialization error

We didn't bail out soon enough..
macosx_application: refactor filename escape

Use Objective-C's new literal syntax to make the code simpler.
macosx_application: refactor psn matching code

Objective-C is shorter / more readable than snprintf.
cocoa_common: fix native-fs state saving

`opts->fs = VO_FALSE` was forgotten
cocoa_common: refactor fullscreen code for readability

Break up the code into several methods and reduce code duplication. Also add
comments to make the intention of all this clearer.