Data URIs: don't decodewith invalid length..
Make URL decoding even more solid.

* Thanks to korli for pointing remaining issues.
UrlRequest: fix race condition

* The thread could set fRunning to false before the caller had set it to
true, leading to a stalled request.
* Happened easily when testing "data" requests, which are fast since no
I/O is involved.
* Possibly also helps with stalled redirects on Google search I've been
seeing for some time.
HttpTest: use BReferenceable APIs for the BUrlContext.
Add tests for data URIs.