Handle http errors consistently
Handle http errors consistently

Previously, if launchpad.net returned an http error code, this would not
be detected by get_text(). Instead the program would continue, and
eventually crash with an AttributeError when using the output from
BeautifulSoup.

Instead, we now raise an HTTPError if the request failed.

This makes sure we get the same behavior in all cases of http failures,
and the error message is a lot nicer.

New behavior:

> Getting list of launchpad
> URLs...https://launchpad.net/ubuntu/+archivemirros: 404 Client Error:
> Not Found for url: https://launchpad.net/ubuntu/+archivemirros
> Unable to retrieve list of launchpad sites
> Reverting to latency only1. la-mirrors.evowise.com: 1.28 ms
> (program continues)

Old behavior:

> Traceback (most recent call last):
>   (stack trace redacted)
> AttributeError: 'NoneType' object has no attribute 'descendants'
> (program exits)

To test this, put a wrong url in mirrors.py:55

jblakeman/apt-select,jblakeman/apt-select