Fix accidental overwrite of variable

The watchdog and GPIO used the same variable to reference the
file descriptor.

Signed-off-by: Fredrik Lindberg <fli@shapeshifter.se>
Advance to next song on SIGUSR2

Signed-off-by: Fredrik Lindberg <fli@shapeshifter.se>
Add playlist support

The playlists uses a INI-style format and support cron-like conditions
for sub-lists to control when music can be played.  Each section
in the playlist is a sublist with the exception for [DEFAULT] which
controls global options for the playlist.

The cron control has a similar syntax to crontab and supports wildcard (*),
ranges (start-end) and comma separated values (1,2,3).  Weekdays and months
can be referred to with both numbers and strings (mon,tue,jan,feb, etc).

Global controls [DEFAULT]
 shuffle=true/false - Shuffle sub-lists

Sublists [<text>] (any other sections]
 shuffle=true/false - Shuffle inside sublist
 cron=min hour wday month
 filename1
 filename2
 filenameX

Example
 [DEFAULT]
 shuffle=true

 [normal]
 shuffle=true
 cron=* * mon-thu,sat,sun *
 somefile.mp3
 somefile2.mp3

 [friday]
 shuffle=false
 cron=* * fri *
 friday.mp3

Signed-off-by: Fredrik Lindberg <fli@shapeshifter.se>