Implement downloading in peer.py

Works, though very finicky.
Merge branch 'peer'