Encode parameters correctly when building an OAuth base string

Parameter key and value escaping needs to use the extended algorithm from the OAuth specification, not the standard URI escaping algorithm so we need to escape !, ', *, ( and ) characters.

This was the cause of certain comments on OSM notes showing up as anonymous, because they contained one of the problem characters.