add support for generic UPnP audio

hi. here are some (hopefully) very-straight forward changes to provide support for generic UPnP audio devices ... the basic hook is to add an optional third parameter to the Sonos() constructor allowing the caller to specify where the endpoints reside (overriding the hard-coded Sonos values.

enjoy!