all requests and response are JSON.
all binary payloads are explicitly encoded as base64
within api.py, and decoded back to bytes before leaving api.py.
User-facing code, e.g. bucket.py and bucket_service.py,
should not see base64 wrangling.
* Setup Github Actions builds for Python client
* unify js and python releases
(triggered by github release)
* reduce build churn: run mac/win only after linux
* ignore some paths in PR build trigger
* name python builder workflow
New client interface to support async usage.
This commit implements async versions of write() and privateRead(); all other calls fall back to blocking synchronous versions.