A good amount of architectural changes

Added the Mode abstraction, also
TorrentMode and DownloadMode classes
Added the TransferMonitor class (monitors received/sent and written/read
bytes)