Move delivery creation logic out of the metalink record class

User story: the leecher panel doesn't auto-refresh when deliveries are added to your queue (it only refreshes when they change state via callbacks from leecher).

Implementation: Turn creation of deliveries into a service and use the service object to talk to pusher.