generator.cs: generate partial EventArgs classes

Allows notification EventArgs to be augmented.
generator: support [Internal] in EventArgs classes
Rename internally used selector to not match an internal Apple selector.

Support case #29200 a customer got a warning about the non-public selector
'apply' when submitting to the app store. Rename our selector so that it
doesn't clash with whatever Apple's doing.
Manually bind two .ctor to ensure their native/managed signatures match
Process .ctor too - merged pull request #47 from Stephane Delcroix
provide log progress, fix a typo (modified pull request #48 from Stephane Delcroix
Fix MonoMac/MonoTouch (for MonoMac builds)
CoreAnimation: start fixing the return value for CAKeyFrameAnimation.FromKeyPath

We should have made this method return a CAKeyFrameAnimation, instead it returns
the base class.   So we now show an Obsolete, pointing developers to the new name
and one day we will be able to change the return type.

We need this two-step process, because changing the return value could potentially
break source code compilation (even if the method has always returned a
CAKeyFrameAnimation), some users might have:

CAPropertyAnimation prop = CAKeyFrameAnimation.FromKeyPath (...);
Performance updates to the AudioToolbox bindings.

Since our marshaling needs are so simple, we do not need to use the
Runtime's more advanced marshaling functionality.

This patch drops PtrToStructure and StructureToPtr for copying
structures and replaced it with pointer operations.

This patch also drops Marshal.SizeOf which is also a runtime API and
uses instead sizeof.

Small tune ups also to clear buffer that were identified using
Instruments as being in the hot path for creating audio buffers.
AudioToolbox: AudioChannelLayout.Layout: take into account the offset, fixes regression
Autorelease NSMutableData instances created with static methods. Fixes #11447.
Add new NSErrorException type to be used by the async code to signal failure.
Move all cattr probing done when handling properties and methods to a separate type.
Extract MemberInformation::GetVisibility out of duplicate code.
Move is_unsafe to MemberInformation.
Extract method modifier generation to MemberInformation::GetModifiers.

This change carries a bit more mess that it needs to due to category_extension_type
and virtual_method not been computed there.
remove spray threadCheck.
Merge more of the cattr information. Now information on virtual method, selector and if it's a wrapper or not.
Pass one parameter instead of 3 to GenerateMethodBody.
Add [Async] attribute to the generator.

The Async custom attribute can be used when converting a callback based function into
an async one. It can take care of method and return type naming and converting NSError
into exceptions.