URI percent decoding, with tests