Refactored into upnptrakt.py, added features, cleaned house.

This fixes #2 and #3.