Avoid experimental warnings about switch
Always kill and restart rygel; it likes to get stuck in weird states

Weird states where it says it's accepting a stream but doesn't actually
send anything to the soundbridge when it gets the request.
Use high-resolution timeouts reduced to the minimums required

This dramatically speeds up running the programs, in particular the RCP
timeout which occurs after every write/read.

It's possible that the library should just ignore anything after an
"End" response, but this works too with very little change.
Only discover UPnP devices once per invocation

This cuts discovery time in half.