Fix capability negotiation when fetching packs over HTTP.

The smart HTTP fetch_pack implementation wasn't so much negotiating capabilities as it was just going with what the server said. This meant the pack was incomplete in some circumstances, causing bug <https://bugs.launchpad.net/dulwich/+bug/1072461>.