Issue#68 Extend OAuth2Client to accept additional properties

I updated OAuth2Client to take an optional Dictionary<string, string> object and two supporting methods.

The first method Form Url Encodes a dictionary.

The second merges your explicit properties dictionary with the passed in additional properties dictionary and returns a merged dictionary throwing out any Keys that exist in the explicit properties dictionary. 

I felt it was appropriate to discard the passed in values than come up with a fancy way to merge it and change it's name or throw an error. 

You  could throw an error if additionalProperties dictionary contains a key in extendedProperties Dictionary.