By splitting the command, we create a list that can be used
with subprocess.run(). This allows to use simple paths as
well as command-lines like "docker compose" to be specified
in compose_executable. It also allows to pass more arguments
to the process.
This doesn't take into account any logic used by shells to
quote strings or escape characters. We could use shlex.split()
instead, if that's required.