Issue#68 Extend OAuth2Client to accept additional properties

resolves Issue #68

I updated OAuth2Client to take an optional Dictionary<string, string> object. I also added two supporting methods as helpers for the new dictionary.

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 from additional properties dictionary 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.