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.
Add [Async] to the shared frameworks used by monotouch.
Merge branch 'async-support'