perf(Response): Improve performance of url encoding

Wrote a custom url encoder to replace urllib.quote. Slightly faster on
Python 2, substantially faster on Python 3.

Closes #134
perf(Request): Optimize percent_unescape

Do less work by checking for existence of '+' before creating a new
string, and also only decoding from UTF-8 when there is a chance
the source string has some multibyte sequences in it.
Merge pull request #216 from kgriffs/optimize_url_encoding

Optimize url encoding/decoding