Create HttpConnector for remote repositories

Uses Guzzle to handle persistent connections and Rackem for local tests.
This means new composer dependencies.