wake on access - upnp support (v2)

This pr adds support for waking upnp-servers and replaces PR https://github.com/xbmc/xbmc/pull/4104

ref this post and onwards : http://forum.xbmc.org/showthread.php?tid=124340&pid=1611088#pid1611088
and : http://trac.xbmc.org/ticket/14880

Should work fine also for upnp-servers hosted on machines with DHCP assigned ipaddresses since alive-test ('ping') now is done by probing availability of the upnp-server rather than actual ping
Maybe a comparison operator overload should be added to `UPnPServer` so this can be simplified to a simple `std::find`? I haven't looked through the code but I imagine there's a similar loop somewhere else.