Add ability to parse by `java.net.URL`

`java.net.URL` is much more lenient about semi-invalid URLs. It is especially relaxed about incorrect query string escapes, which, sadly, is pretty common in the wild.

This change requires an update to the build dependencies; org.apache.httpcomponents/httpclient is bumped to 4.3.3. 

For fun, also implemented the standard json file tests.