Support for UDP trackers

Created an interface for trackers, and separated existing implementation into HttpTracker, and added UdpTracker.
Can you add a copyright header here, similar to the other project files? Add your name to the copyright and I can add you to a CREDITS file once the request is merged.