Update OAuthClientBase to support optional parameters

Updated OAuthClientBase to support the optional parameter "resource" of the OAuth V2 standard, as this field is required to support the Microsoft Azure Active Directory OAuth implementation.
Also added UrlEncode logic to the APISecret, as apparently secret keys generated by Azure are not url friendly. 
Tested implementation on dev box and an Azure site for LiveConnect, Google, Facebook and Azure Active Directory.