Percent encode strings as described in RFC 3986, Section 2.1