buildkit: Handle client cache import options
Cache imports must be explicitly handled by the BuildKit gateway. They
are not handled automatically by buildkitd or by dockerfile2llb.
Implementation was basically copy/pasted from upstream's dockerfile
frontend.
Note that there are two possible forms of client options in <= v0.10
of the BuildKit client (buildctl and docker buildx). Upstream's
master branch, however, normalizing the options into a single form.
Once upstream cuts a new minor version and we adopt it, we can remove
the old cache-from form.
Bug: T323149