We were missing initByReferencingFile: which initializes
the image object lazily.
The non working use case was:
var iconFile = NSBundle.MainBundle.PathForResource ("AppIcons", "icns");
NSApplication.SharedApplication.ApplicationIconImage = new NSImage (iconFile);
In this example, the constructor is calling initWithContentsOfFile: which will
not load the right icon from the .icns file.
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=40349.
mtouch only uses Xamarin.Mac to read plists, so change to use
our purely managed plist reader in Xamarin.MacDev instead.
That makes us able to change mtouch to be a normal command-line
executable (and project).
Which makes it logical to not mkbundle mtouch anymore,
it executes just fine with the system mono (and there's
no code to protect anymore either).
And since mmp and mtouch share some files, do the same
for mmp.