Fix libao output driver.

The driver id returned by libao wasn't checked correctly.
When the driver did not exist, libao returns a negative number. The
libao output driver checked for a non zero id.
This caused shairport to refuse to use the first driver, and not fail
when using a non-existant driver.
Add a PulseAudio output driver.
It uses libpulse's synchronous API, to output to PulseAudio
without using libao.
Fix pulse audio output driver in daemon mode.
libpulse was initialized before the fork. This caused calls to libpulse
made after the fork fail.
Now initialize lib pulse when we need it, after the fork.
Merge pull request #224 from plietar/fix-libao-driver-check

Fix libao output driver.
ao, shairport: fix option parsing

- don't push unrecognised args to the audio driver
- get ao to parse from first argument
- ao checks for unrecognised options
pulseaudio: fix option parsing
pulseaudio: Make the application name configurable

If no name is specified, use the AirPlay access point name.
add getopt_long implementation and detection
getopt_long: neater errors
add long options, and update usage message
audio: update usage messages
daemonising: fork before doing any audio init
Merge pull request #223 from plietar/pulseaudio

Add a PulseAudio output driver, courtesy of Paul Lietar
Revert "Fix pulse audio output driver in daemon mode."

This reverts commit 8045e00d4f3d694cff99c30e3a5cd63eca3b4e5c.
Now, pulseaudio can be initialised at startup, thus detecting connection
errors early.

Conflicts:
	audio_pulse.c
Add support to write pid to pidfile when running in daemon mode.
Move daemon related code to a separate file.
Remove pid file when exiting.
Support log redirection to a file.
Use line buffering on log files.
This makes sure the contents are written on the disk, so the user can
read the log.
Tiny cleanup for merge