Fix only playing one track at a time

Doh. Dumb error.
Attempted fixes for playlogger time outs

After a long time of being slept, the playlogger WS FD is closed at the other end but we for some reason don't realize this and try to send() to it anyway, this is blocking and takes like a minute to timeout.

Now, we should know it is closed as select should trigger on us when we wake up before we can do anything that would lead to sending stuff down the socket. Then we should try to read, then we should realize the socket is closed, and flag it to be reconnected before the next write.

In theory the pause we send on sleep doesn't go until we wake. Thus we are indeed trying to send down a closed socket. Fixing that is harder, but really, we should handle that. But long term we plan to have threads or be non blocking so…
Let’s be consistent and pick one of MacOS/Cocoa
DRY RUBY declarations
Win32: --warning