UTF8UrlDecoder tests and fixes

I added some tests for Utf8UrlDecoder and noticed it was decoding "%20" to "320".

Fixed this. 

I also checked for the correct exception to be thrown if string is too short.