New implementation of get_speaker_info

tested to backwards compatible with the old version.
except:
 Have dropped the speaker icon but easy enough to put back in.

What's new:
* gets the speaker info from a different url.
* disadvantages - there's more processing to be done.
* advantages - this is the proper address that the "real" Sonos Controllers get
  the device info from. It has more rich information. It is Upnp compatible.

The reason I did this was to find out which of the speakers on the network
had line in. It can also be used to tell definitively if a device is a
player, a renderer or a general non-sonos upnp device although I've not
experimented with that.

From here you can also properly iterate all the services, which may
be a good thing to do protect against links changing in future.