Also swallow ConnectionErrors from requests.
Be more receptive to requests errors.

This also involved some refactoring to make things nicer.
* Introduce an http_get method wrapping requests.get and handling errors
* Project.download also fetches and returns the metadata.
  (We want to skip projects where either of those fails.)
* Some restructuring: most of the logic inside main has been moved,
  mostly to the projects generator, which now returns the json directly
  instead of the Project.

* (Remove the --extract_archives flag, never used...)