First operational version

compile:
  ./rebar compile

run:
  erl -pa ebin
  1> torrent_file:download("../path/to.torrent")
Add Info argument to encode/decode packet
Use sets of integers rather than bit sets everywhere
Fix bug when download complete
Handle (and ignore) "extended" messages
Simplify code 

Each peer process now does its own connect, rather
than delegating that to a temp process, which leads
to a complicated hand-off procedure.

Also:

 - start block downloading at a random block, so
   that when downloading the same piece from two
   peers, one will "catch up" with the other, and
   complete faster.
 - keep track of interest/choke, so send/2 does
   not need to ignore messages with no effect.
Use gproc to simplify some code
Reorganizing to simplify the code

- split torrent_file into two: torrent_{owner,file}
- use plain_fsm rather than gen_server
- use gproc for registry and counters
Merge branch 'master' of github.com:aosabook/500lines
Add to readme
Remove socket accept code

Since most people will be running this behind
a firewall anyway, there's no point in trying to
accept incoming TCP connections.  This shaves
~120 lines off the code.
Some initial text
Merge pull request #10 from krestenkrab/master

Initial code / torrent client