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
3 jobs for !32 with review/handle-cache-imports in 4 minutes and 14 seconds (queued for 2 seconds)
latest merge request