Add profiling and Ctrl-C handling
Add support for magnet

To download a magnet, we don't fill the TorrentSession completely, only
with the InfoHash. We then add a few booleans for selecting the path of
a peerMessage: as long as the metadata is not completely downloaded,
we only treat metadata-oriented messages.
Add code suggestions from @nictuku
Merge pull request #22 from rakoo/profiling-ctrlc

Add profiling and Ctrl-C handling
Merge branch 'magnet' of git://github.com/rakoo/Taipei-Torrent into rakoo-magnet

Conflicts:
	torrent.go
Updated README.md

Just say to install the go envionment, since "Go One" is no longer
being promoted as the way to install go.

Stop using third person to refer to myself.
Clarify who "I" is.
Compartmentalize code

- Add a loop for multiple torrent sessions
- Move connection listening to its own file: new external connections
  are first verified for bittorrent correctness, and then only passed to
  the relevant torrent session
Merge pull request #24 from rakoo/multisession

Compartmentalize code
No need to wait for the DHT to 'fill'
Style cleanups of listen.go
Fix doc typo
Use fmt.Errorf, for consistency
Merge pull request #25 from nictuku/style

A few style improvements
Update .gitignore to ignore all testData
Merge pull request #27 from rakoo/testdata

Update .gitignore to ignore all testData
Use torrent name before torrent filename
Add default bitfield for new peerstates
Merge pull request #28 from rakoo/torrent-name

Use torrent name before torrent filename
Merge pull request #29 from rakoo/fix-default-bitfield

Add default bitfield for new peerstates