First commit on this branch. Fixed a small bug at bitfield. Also i modified that we return the input parameters when we have an error at channel PeerCommunication, not nil( if we have input parameters). This will help us know what we actually requested so we can retry..  maybe?