splitmuxsrc: Implement state change asynchronously instead of blocking
Blocking in change_state() is a recipe for disaster, even more so even we wait for another thread that also calls into various element API and could then lead to deadlocks on e.g. the state lock.