[OpenTK] Re-add static Factory constructor

There are static methods that rely on `OpenTK.Platform.Factory` having
a static constructor. We need to fix those first, before we can remove
this constructor.
[Mac] More defensive programming

CocoaNativeWindow now checks for and reports failures to allocate
resources in its constructor. Additionally, it no longer calls UI
methods in the finalizer thread, as those methods will crash on Cocoa.
[OpenTK] Additional constructor and doc cleanup
[Mac] Do not execute run loop prematurely

Fixes a potential crash when destroying and recreating OpenTK.Toolkit.
[OpenTK] Add allocated resource registry
[Mac] Register platform resources for disposal