db/upnp: fix "upnp:class" parser

"upnp:class" is an element, not an attribute of element "item".  This
fixes a regression from commit 65ebfb16
db/upnp: use std::function for the libupnp callback

Replaces the bloated std::map.
db/upnp: add fallback for emplace()

The method emplace() was added in gcc 4.8.  This commit restores
compatibility with gcc 4.7.
copyright year 2014
CommandLine: print list of database plugins