upnp: Rewrite the UPnP services discovery module in C

/!\ --------------------------------------------- /!\
/!\ Work in progress: This commit WILL be amended /!\
/!\ --------------------------------------------- /!\

This is a rewrite of the pupnp-based services discovery module in which
the content directory container handling logic is moved to a separate
access module. This allows for a much more efficient directory fetching
behavior in that it is no longer necessary to fetch the whole content
directory hierarchy at once.

The new module is written in C instead of C++ and is licensed under the
GNU General Public license with my permission for VideoLAN to relicense
under the LGPL v2+
upnp: Add a UPnP A/V Content directory container access module

/!\ --------------------------------------------- /!\
/!\ Work in progress: This commit WILL be amended /!\
/!\ --------------------------------------------- /!\

This module fetches a subtree from a UPnP A/V Content Directory Service
and sends it as an XSPF playlist with VLC extensions to the xspf demux.
It is intended to be used with the new UPnP A/V services discovery,
which makes use of upnp+container:// MRLs

The module is licensed under the GNU General Public license with my
permission for VideoLAN to relicense under the LGPL v2+ if the directory
access module (from which I'm borrowing the general architecture and some
code) is relicensed.
upnp: sd cosmetics
TEMP ! DO NOT PUSH