Encode/decode URI components, with tests!