uri::percent_decode in place and as template