Stupidly big commit. Refactor of connection code + bugs fixes. Added peer and peer coordinator plus connect to peers logic. Added interfaces but no implementations for PieceMap and Bitfield.