decoder/faad: remove workaround for ancient libfaad2 ABI bug

Many years ago, FAAD had a serious ABI bug: the NeAACDecInit()
prototype in its header declared the "samplerate" parameter to be
"unsigned long *", but internally, the function assumed it was
"uint32_t *" instead.  On 32 bit machines, that was no difference, but
on 64 bit, this left one portion of the return value uninitialized;
and worse, on big-endian, the wrong word was filled.  This bug had to
be worked around in MPD (commit 9c4e97a6).

A few months later, the bug was fixed in the FAAD CVS in commit 1.117
on file libfaad/decoder.c; the commit message was:

 "Use public headers internally to prevent duplicate declarations"

The commit message was too brief at best; the problem was not
duplicate declarations, but a prototype mismatch.  No mention of the
bug fix in the ChangeLog.

The MPD project never learned about this bug fix, and so MPD would
always pass a "uin32_t *" dressed up as a "unsigned long *".  Nearly 6
years later, it's about time to fix this second ABI problem.  Let's
kill the workaround!
OutputThread: fall back to PCM if given DSD sample rate is not supported

Works around the "PCM conversion from f to dsd is not implemented"
error message that prevents DSD playback.
SongSticker, playlist/soundcloud: add missing stdlib.h include

For free().
AllCommands: "commands" returns playlist commands only if playlist_directory configured
playlist/m3u: recognize the file suffix ".m3u8"
TextInputStream: don't ignore unterminated last line
decoder/mad: fix negative replay gain values

Negating an unsigned integer does not work.
PlaylistFile: don't allow empty playlist name
Revert "Main: run the OS X native event loop"

This reverts commit f0be48ff90503d9ffa5b295fd4454eec753950ee
(except for the NEWS entry).

If libdispatch (GCD) is used before forking, it
can't safely be used again after forking.
Main: run the OS X native event loop after forking
util/UriUtil: add uri_get_suffix() overload that ignores query string
Decoder, Playlist: ignore URI query string for plugin detection

Use the new uri_get_suffix() overload that removes the query string.
input/curl: fix curl_easy_setopt() parameter types
lib/upnp/Discovery: add missing stdlib.h include
configure.ac: prepare for 0.18.17
TagString: use g_strndup() for unterminated string

Fixes buffer overflow bug.
output/roar: remove unnecessary "volatile" keyword

A mutex acts as a memory barrier, and thus "volatile" is not
necessary.
configure.ac: show DSD in result
decoder/ffmpeg: recognize MIME type audio/aacp
decoder/faad: remove workaround for ancient libfaad2 ABI bug

Many years ago, FAAD had a serious ABI bug: the NeAACDecInit()
prototype in its header declared the "samplerate" parameter to be
"unsigned long *", but internally, the function assumed it was
"uint32_t *" instead.  On 32 bit machines, that was no difference, but
on 64 bit, this left one portion of the return value uninitialized;
and worse, on big-endian, the wrong word was filled.  This bug had to
be worked around in MPD (commit 9c4e97a6).

A few months later, the bug was fixed in the FAAD CVS in commit 1.117
on file libfaad/decoder.c; the commit message was:

 "Use public headers internally to prevent duplicate declarations"

The commit message was too brief at best; the problem was not
duplicate declarations, but a prototype mismatch.  No mention of the
bug fix in the ChangeLog.

The MPD project never learned about this bug fix, and so MPD would
always pass a "uin32_t *" dressed up as a "unsigned long *".  Nearly 6
years later, it's about time to fix this second ABI problem.  Let's
kill the workaround!