Separate Trackers and support scrape messages

2 commits:

1. Refactor to support trackerId and announce interval per Tracker instead of per Client.  This makes Client a pretty simple collection proxy of Trackers.
2. Add client and server support for scrape messages (in addition to the traditional announce message); client http/udp and server http support are included.