mpd.service: depend on network.target

Since some configurations use the "bind_to_address" option in their
/etc/mpd.conf, the systemd service file must wait for the
network.target or else mpd will start before it and thus fail due to
no iface.
playlist_edit: convert to C++
database.h: eliminate db_*_song()

Use the C++ API.
database.h: move prototypes to DatabaseGlue.hxx
database.h: rename to DatabaseSimple.hxx
Directory: rename struct directory to Directory
Directory: add constructor and destructor
Directory: initialise in default constructor
PlaylistVector: use std::list
strset: delete obsolete library
StickerDatabase: use std::map instead of GHashTable
MessageCommands: use std::set instead of GHashTable
client_new: convert to C++
permission: convert to C++
Permission: use std::map instead of GHashTable
InotifyQueue: use std::deque instead of GSList
exclude: make variables more local
exclude: convert to C++
ExcludeList: convert to a class
text_file: convert to C++