Main: glue_mapper_init() returns true if GetUserMusicDir() fails

Not a fatal error.  Fixes assertion failure.
db/upnp/Device: clear the "value" pointer on unknown element

Avoid appending to an obsolete string object.
db/upnp/Util: use string::back(), string::front()
db/upnp/Util: handle absolute URI paths properly in caturl()

Fixes problems with some UPnP servers.
db/upnp: require an empty input capability set
db/upnp/Util: pass char* to csvToStrings()
db/upnp: obtain char* from ixmlwrap::getFirstElementValue()

Fixes crash when there's no SearchCaps element.
db/upnp: remove special case for "*"

Passing this to csvToStrings() will do the same.
db/upnp: inline ContentDirectoryService::readDirSlice()
db/upnp: pass unsigned integers to readDirSlice()
db/upnp: use ParseUnsigned() instead of atoi()
db/upnp: break when count==0

Make this non-fatal.  Just stop reading more objects.
db/upnp: free responses manually
db/upnp: break when zero objects have been returned
db/upnp: check offset<total at end of loop
db/upnp: use std::list instead of std::set for SearchCapabilities

Reduce bloat.  We never used the set lookup.
db/upnp/Discovery: eliminate two strlen() calls
db/upnp/Discovery: unlock mutex before deleting DiscoveredTask
db/upnp: use string::push_back() instead of string::append()
db/upnp: append characters instead of single-character strings