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.
Maybe it's the way GitHub is rendering this, but the indentation of this file looks weird, mixed tabs/spaces perhaps?