Abstract out the yes/no string boolean processing.
Implement best practices for urlencode/decode. Idea by @robsonsobral.

Apparently rawurlencode and rawurldecode implement the proper
url encoding standard, while urlencode and urldecode are there only
for backwards compatibility. Thus, let's implement that by default,
but give the option to go back.