Allow configurable resource paths for embedded scenarios.

When Mono is embedded the standard Resources and Frameworks paths may not apply. In fact, BasePath may be null which causes the original code to throw. This feature sets up the default Resources and Frameworks paths as they were before but also provides some reasonable fallbacks and allows them to be manually configured by the runtime host.
Incorporate feedback from jstedfast for default fields and use of basePath.
Enable thread protection

This patch enables thread protection for MonoMac similarly to MonoTouch. The monomac patch is associated with an accompanying patch to maccore.
Foundation: move NSPipe and NSFileHandle to maccore, and fix it in the process
From @thenextman: add missing NSFrameRectWithWidthUsingOperation, allow nulls in a few methods of NSOutlineView;   Miguel: fixed the naming, add handful of other methods
Merge pull request #97 from spicypixel/feature/thread-protection

Enable thread protection
Merge pull request #85 from spicypixel/feature/configurable-resources-path

Allow configurable resource paths for embedded scenarios.
Add [NullAllowed] to userInfo argument of NSTrackingArea constructor

The Apple docs say this may be nil, and my testing confirms this.