Improve Abort Handling in Preroller

In the case where a preroll server was failing to respond in a timely fashion, requests that has not yet been granted a socket at the time they were aborted were getting their callback fired twice (once in the abort timeout, once via the `req.on "error"` handler).

Fix that issue by ensuring that callbacks in `Preroller.pump` can only ever fire once, and generally straighten up some code in there.

Refactor the code in Preroller slightly to make it easier to test. 

Clean up disconnect tracking in `RawAudio` and `Shoutcast` outputs.

Remove extra whitespace in touched files.