Couple mistakes, like event delegate being registered in the wrong spot, and a lot of repeating, unnecessary code.
Merge pull request #15 from kellyelton/patch-1

Couple mistakes, like event delegate being registered in the wrong spot,...
[TorrentEditor] Change a reference equality check to a value equality check
Fixed bug with stopping torrents
Merge pull request #30 from SirCmpwn/master

Don't notify broken trackers of Stop()
Add support for url encoded tracker urls. Test case included.

Conflicts:
	src/MonoTorrent.Tests/Common/MagnetLinkTest.cs
	src/MonoTorrent/Common/MagnetLink.cs
More url decoding
Added .gitignore, allowed for users to override default IConnection handlers
Merge pull request #31 from SirCmpwn/master

Allow users to override default IConnection handlers
Ignore 'AllowedFast' messages when i metadata mode

These messages are only useful once we have the torrent
metadata and know the number of pieces in the actual torrent.
When in metadata mode the bitfield's length will correspond
to the number of pieces in the torrent metadata, so the odds
are high that an AllowedFast message will refer to an index
which does not exist anyway.
Prevent a null reference exception when in MetadataMode

Manager.Torrent will be null until all metadata has been received.
We can modify the code to use Manager.Bitfield instead of trying
to get the info from the (non-existent) metadata.
Merge
Reverted previous changes to eliminate warnings to sync with core monotorrent repo.
Fixed WaitHandle cleanup in EncryptorFactory when exceptions happen. Whitespace cleanup.
Throw a torrent exception with more details in it when peer IDs don't match. Code cleanup.
Calculate skeys list in the engine as torrents are registered and removed. Reduces the need for the ListenManager to
wait for thread queue processing. Fix for bug #33: global speed limits ignored. Minor cleanup of whitespace and
comments. Stop the engine's PeerListener during dispose.