Use TaskCompletionSource instead of Task.Factory.StartNew where simple result is needed
Avoid blocking thread by calling .Result on a non-completed task
Preserve synchronization context because OnRetrievedAccountProperties uses it
Propagate GetAccessTokenAsync exceptions to the calling code
Support parsing access token from JSON as needed by Google and Foursquare
Make request body configurable for service implementors. This allows for Facebook batch requests.
Expose RequestAccessTokenAsync down the hierarchy (Google can use it to obtain access tokens with refresh_tokens)
Make authorization header generation overridable. We need this to implement Twitter Reverse Auth. Licensed under MIT/X11
Implement authorization using system browser with a concrete iOS implementation

This commits add support for authentication via system browser instead of presenting modal view controller. It includes a working iOS implementation called SafariUrlHandler. Android clients can implement ICustomUrlHandler in their code.

Commit licensed under MIT/X11
Merge remote-tracking branch 'origin/xamarin-pr-allow-override-body' into stampsy
Resolve conflict
Merge remote-tracking branch 'origin/xamarin-pr-avoid-starting-tasks-where-possible' into stampsy
Merge remote-tracking branch 'origin/xamarin-pr-dont-leave-task-exceptions-unobserved' into stampsy
Merge remote-tracking branch 'origin/xamarin-pr-expose-requestaccesstokenasync' into stampsy
Merge remote-tracking branch 'origin/xamarin-pr-make-oauth1-header-configurable' into stampsy
Merge remote-tracking branch 'origin/xamarin-pr-preserve-synchronization-context' into stampsy
Merge remote-tracking branch 'origin/xamarin-pr-support-authentication-with-browser' into stampsy
Merge 'stampsy' into 'master'.

We're keeping master for quick fixes. Proper pull requests will be based on 'xamarin' branch, merged into 'stampsy' and later in 'master'.

Conflicts:
	src/Xamarin.Auth.iOS/Xamarin.Auth.iOS.csproj
	src/Xamarin.Auth/OAuth1Authenticator.cs
	src/Xamarin.Auth/OAuth1Request.cs
	src/Xamarin.Auth/OAuth2Authenticator.cs
	src/Xamarin.Auth/Request.cs
	src/Xamarin.Auth/WebAuthenticator.cs
	src/Xamarin.Auth/WebEx.cs
	src/Xamarin.Auth/WebRedirectAuthenticator.cs
Remove old code already in 'stampsy'
Add GetValueFromJson to WebEx

This function was previously defined in FacebookService inside Xamarin.Social,
but we also needed it for implementing GoogleService, so it makes sense
to make it available as a help method in WebEx, which is shared by both Auth and Social.

Commit licensed under MIT/X11