soup-message-server-io: handle unsatisfiable Range requests correctly

soup_message_headers_get_ranges() doesn't check satisfiability (and
can't without changing its API) so add a new
soup_message_headers_get_ranges_internal(), and use that from
soup-message-server-io so we can handle this properly. Test that it
works from range-test.

Pointed out on the mailing list by Kai Lüke.
get: fix to not send the request twice
soup-message-headers: clarify that SoupServer has built-in Range handling
soup-address: handle IPv6 literals with scope IDs

Use GNetworkAddress to try to parse IPv6 addresses with scope IDs,
rather than just letting the scope ID get dropped.

Part of https://bugzilla.gnome.org/show_bug.cgi?id=669724
soup-address: fix a GMainContext bug

SoupAddress's GSocketAddressEnumerator implementation was passing the
wrong GMainContext to soup_address_resolve_async(), although it only
ended up affecting the address-is-already-resolved case. Fix this.

Also, remove the async_lookups list from SoupAddressPrivate, and just
make multiple calls to the resolver if there are multiple calls to
soup_address_resolve_async() at once, since that code didn't handle
different GMainContexts correctly.
More IPv6 scope ID fixes

Don't include the scope ID in the "Host" header.

Make SoupURI correctly parse both correct and incorrect scope IDs, and
add checks for that in tests/uri-parsing.
2.43.90