Add new interop methods to NSThread for invoking delegates.

This change adds convenient methods to invoke an Action delegate with optional parameter either synchronously or asynchronously on a new background thread, the main thread, or a specific thread.

Examples:
NSThread.StartNewThread (() => DoSomething());
NSThread.MainThread.Invoke (() => DoSomething());
myThread.Invoke (() => DoSomething());

This commit also removes the redundant and verbose DetachNewThreadSelectorToTargetWithObject overload.

Finally, this commit adds and installs NSThreadSynchronizationContext.
Add shortcut methods. Fix #349.
Update generator to handle OS X DocSet v419.33. Fix #395.
Add missing GameKit files.
Merge branch 'feature/nsthread-interop-delegates' of https://github.com/spicypixel/monobjc into spicypixel-feature/nsthread-interop-delegates
Add support for null argument.
Refactor some code.
Add some tests.