added fire_event_to_listener to backend base class
abstracted reasonable pycurl handle opt defaults
added some comments
got carried away coding and really should have 3 commits intead of 1
changed congif to require protocol and replaced assert for max_concurrent with conditional + exception raising
added request states to the reports
added comment as to the possible alternatives to only protocol based backend selection
changed error handling to not explode in my face
added easier max_concurrent determination and initial https downloader
added overridden __init__ and __del__ to https downloader
removed old download method
moved select call to top of i/o loop
fixed missing removal of completed easy handles from multi handle
added hand-testing script