Fix 30 minute iTunes/DAAP time-out problem

httpd_daap now responds to client "update" requests.  Previously,
these requests were queued without response, and the client
closed the control session after 30 minutes of inactivity.  This
modification pushes out an update response when a new database
revision becomes available, or 25 minutes, whichever comes sooner.
This change set does not monitor the database state, so dynamic
updates to a library listing do not occur.  What you see at login
to the server is what you get.

Tested against iTunes 9.2.1; a connection stays up for hours,
regardless whether a song is being played or not.
Enable dynamic library updating

Modifications to db.c to enable the DAAP server to determine when
the media library has changed, and notify clients via an update.
Updates should show up to clients within 10 seconds.

Tested on iTunes 9.2.1
Revert "Enable dynamic library updating"

This reverts commit 732ec9239a59525d179beac35bad5f56c5db1ced.
Revert "Fix 30 minute iTunes/DAAP time-out problem"

This reverts commit 7a021b2332402a32ad92494db910344f3a428e0a.
Merge remote branch 'upstream/libevent'
Fixes for iTunes v10.5 time-outs.

Details:

iTunes v10.5 clients changed how they responded to DAAP
protocol, and started disconnecting when the forked-daapd server
sent an empty "refresh" reply ("mupd" protocol).  This problem is
also coupled with session-timeout ("mstm" and "msal"); when these
server capabilities were enabled, iTunes 10.x clients did not poll
for updates and eventually disconnected.

I investigated DAAP network packets using Wireshark.  I found that
a true iTunes server sends a set of server capabilities in a specific
order, and order matters to the client.  When the correct order is used,
the client correctly polls for updates and does not disconnect.

This change:
  1. Send server capabilities in different order (daap_reply_server_info).
  2. Disables 5-minute update refresh.
  3. Disables 30-minute inactivity time-out.

Testing:
This server version successfully stayed connected to the
following clients:
  * iTunes 10.5.2
  * iTunes 10.4.2
  * iTunes 9.7.1
  * Rhythmbox 0.12.8
The clients stayed connected for at least several hours,
sometimes days, with activity or no activity.
Fixes for Amarok and Banshee clients which don't send
revision-number in their update request.

Details: Banshee (v1.6.1) and Amarok client players send an
update request but do not send the revision-number parameter.
iTunes version 10 (and perhaps earlier) does send this parameter.
See: https://github.com/jasonmc/forked-daapd/issues/78

Fix: function daap_reply_update() now warns when revision-number
is not submitted by the client, but does not reply with an error.
In that case the server assumes a revision-number which insures
an update is sent back to the client.

Testing:
I verified that the following clients were able to connect succesfully
and retrieve a library listing:
  * iTunes 10.5.2
  * iTunes 10.4.2
  * iTunes 9.7.1
  * Rhythmbox 0.12.8
  * Banshee 1.6.1
I can't test with Amarok since I don't have this client.
Only eventfd_write is used, so check for that
Fixed RemoteApp communication which broke for Remote 3.0 due to some new properties in the query
Now artists/albums are properly sorted and grouped
Changed SAMPLE_FMT_S16 for ffmpeg 0.11
Removed avcodec_init, obsolete in ffmpeg 0.11
Allow playback on non apple airplay devices
Also look for artwork in folder.jpg
Artwork file names made configurable
Adds looking for artwork named [directory name].{png,jpg}
Prefer album artist even when DAAP says artist
Merge branch 'cfgartwork'
Update to support some older, encrytped APEs

Some APEs report their am value as something like `AirPort4,107` (Old
version) or `AirPort10,115` (new version). (There is some evidence in
the player.c code that some old APEs do not report an AM value at all,
but all three of mine do.

As far as I can tell, the following is true of APEs with AM values:
- am="AirPort4..." - Encrypted (so devtype should remove
`RAOP_DEV_APEX_80211N`)
- am="Airport10..." - Not encrypted (so devtype should be set to
`OTHER`)

So, I suggest the following change to line 28:
```
else if (strncmp(p, "AirPort4", strlen("AirPort4")) != 0)
```

There may be other flavors of APEs that may fail this test, but it's
the best I can suggest with the devices I have.
AirFoil will not return CSeq, so skip checking if it's missing