Run commands on coordinator

I haven't tested this yet, but I believe the code is more or less ready by now!

This makes sure that commands required to run on `device.group.coordinator` always does so.

There's probably lots of ways to optimize this, I just wanted to write down the idea of it to begin with.
Is there any particular reason for that? The decorator will only be applied to methods that expect (something like) a SoCo instance. If the caller passes something else, it might be on purpose (eg a mock). In that case I'd just rely on proper duck-typing and remove the explicit type check.