dlna: introduce a dlna lower layer

A small change on how the dlna profile and mime are defined, now LMS
knows about the rules and aplies it wherever possible.

In the next patches we make use of it.
image/video db: new fields added

New fields were introduced, they should go through the lower layers
to be used on dlna source code, they are:

    + image:
        container: a string carrying the container information, used
	 to determine which dlna set of rules should be applied.
    + video:
        packet_size: without the packet_size we can not apply the
	meg1/2 rules.
utils: move DECL_STR macro to utils so we don't need to duplicate it everywhere
asf: remove all the dlna stuff from plugin
id3: remove all the dlna stuff from plugin
jpeg: remove all the dlna stuff

Remove all the dlna stuff and make use of the container field so
we can know the rules to apply.
mp4: remove all the dlna stuff from plugin
png: remove all the dlna stuff

Remove all the dlna sutff and likewise the jpeg plugin we set the
container field so we can know - in the dlna layer - the rules to
apply.
wave: remove the dlna stuffs from plugin
generic: remove the dlna stuff and add codec container handlers

This patch removes the dlna stuffs from generic plugin and for backward
compatibility we have introduce some container and codec handlers so we
can result in the same identifiers as the other plugins, if a handler
is not found we go with what we can extract from the file using the
libavformat api.

The mp4 codec implementation lacks on some profiles/levels parsing by
no a smaller subset - not a minimal, but a smaller subset.
db layer: call the lms_dlna_* functions

Finally call the lms_dlna_* functions to properly set the dlna_profile
and dlna_mime fields.