Implement USER setting owner of COPY'd files.

The patchset actually implements the proposal docker#7537. It
adds the functionality for the `COPY` instruction to `chown` the
files it copies into the container to the current `USER` set in the
`Dockerfile`. It also adds tests to ensure that this UX change does
not regress in later revisions.

Closes #7537

Signed-off-by: Aleksa Sarai <cyphar@cyphar.com> (github: cyphar)
@crosbymichael On systems where there is no `/etc/group` and `/etc/passwd` file, this needs to return an error -- how else would you know that the OS doesn't provide those files? The only other solution is not to implement those functions for OSes that don't provide the files -- which gives you compile-time errors for the entire project.