Fix cases when peers send BITFIELD

BITFIELD can be received, but only as a first message or after
an EXTENSION message.
Replace hardcoded ints with consts
Fix misc errors

- The readHeader was returning the full header, including the
  "Bittorrent Protocol" string and its length prefix, but callers
  were considering this string was removed. Removed this string from
  the returned byte slice

- In a for loop, use break to exit the loop rather than a goto

- Make trackerLessMode a per-torrent variable

- If the metainfo has no trackers, set trackerLessMode to true

- Use global consts for message names rather than hard-coded ints

- Remove header parsing in DoMessage, since it has already been done
  before in AddPeer

- Send BitField if remote peer doesn't do extensions

- Don't send choke as first message, rather send it after successful
  BitField

- When last piece fills a full piece, lastPiecLength ==
  STANDARD_BLOCK_LENGTH
Merge pull request #32 from rakoo/misc-fixes

Misc fixes