Remote repository can negotiate and fetch a packfile
Initialise packfile index with an URL instead of a raw stream

Indexes are likely only going to be used locally and read once so there
is no advantage in passing streams around.
Nullify stderr from local connector

stderr from git-upload-pack contains progress info instead of errors.
Initialise Packfile with URL and let it manage it's own stream
Do not use bindec() it is unreliable cross-platform