Add JSON stream progress writer
What I did I added a JSON stream progress writer. This allows to write machine readable output to stderr, which makes it a lot easier to use Docker Compose from other tools, like Ansible.
Related issue Fixes #10872.
(not mandatory) A picture of a cute animal, if possible in relation to what you did

I still need to run make docs and commit the changes. Unfortunately it never comes remotely near to completion with the not so great internet connection I have on this train, so that has to wait until later...
Docs are updated, CI passes (checked in https://github.com/felixfontein/compose/pull/1), but while testing this (now that I was actually able to build this) I noticed that Docker Compose apparently expects Docker Buildx and Docker CLI itself to also have a JSON progress writer. I'm getting invalid progress mode json errors when it tries to pull images, and building also doesn't seem to work.
I eventually noticed that in case of errors, the error is always printed regularly and not via the progress API. I added code in d3b85f9e388787e06fe514957231e1b9696e051a that in case --progress json it also formats the error as JSON.
This is now ready for review.
It probably makes sense to set logging to JSON (logrus.SetFormatter(&logrus.JSONFormatter{}), see https://github.com/sirupsen/logrus/blob/master/README.md) to avoid random non-JSON logging messages to show up on stderr.
@ndeloof can you take another look at this? Thanks!
Can you please squash your commits and rebase, I'll enable auto-merge on this PR
@ndeloof thanks a lot for reviewing and merging! Since you rebase-merged I assume I don't need to rebase/squash this anymore :)
auto-merge applied before squash, never mind