Support whitespace in paths for ADD and COPY

This PR takes on @seongyeol37 work on supporting whitespace in paths for `ADD` and `COPY` Dockerfile instructions. It reverts an unrelated commit submitted as part of #8406, and adds tests and documentations for the new features.

Fixes #8318.
Replaces #8406.
can we use %q instead of `\"%s\"`