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.
++i incs i, which later in initializing the StringBuilder sb at line 50 leads to a wrong portion of input string beeing copied. E.g. '%20' copies '%20', and appends a space after that. instead of creating an empty StringBuilder.