Commit Briefs
change play_*() so that they return an integer
this will allow to remove the `got_stop' hack in player.c
drop now unused #include <sndio.h>
with the recent refactoring, sndio is only visible in player.c
fix argc check
argc can be -1 if we called noarg with argc=0, because optind is 1.
correctly handle arguments for sub-commands
things like "--" should be skipped etc, easier to rely on getopt(3).
rework how the daemon is automatically spawned
The previous way introduce possible races if multiple `amused' instances try to start the daemon. The new approach is heavily lifted from how tmux does it, but with some minor differences. If the initial connect fails we try to grab a lock to safely execute the daemon only one time. In fact we try to connect one more time even when we hold the lock because another instance can grab the lock, start the daemon and release it between the failure of connect and the first flock. It also changes slightly how the program behaves and how the -d option works. Now running `amused' without arguments is a synonym for `amused status' and the -d option only works if no arguments were given and if the daemon wasn't running.