New torrent status logic.

Summary of changes:
(1) Two new columns in DB: "tracker_check_retries" and "next_tracker_check"
(2) Two new temporary methods in TorrentDBHandler: getTorrentCheckRetries() and updateTorrentCheckResult().
(3) New torrent status logic:
    (a) a good result means seeders > 0 or leechers > 0, a bad result means seeders == 0 and leechers == 0.
    (b) when a torrent gets a good result, its status will become "good" and its retry count will be reset to 0.
    (c) a torrent is announced to be "dead" if it reaches the maximum retry count and it has no good result.
    (d) the torrent check selects the torrents on a tracker and also checks their next_tracker_check column. Torrents with their next_tracker_check later than the current time will be ignored.
    (e) next_tracker_check is calculated in this way: <next-check> = <last-check> + <interval> * (2 ^ <retries>), where <interval> is configurable and is 30 seconds in default.