Make assets:install smarter with symlinks

| Q             | A
| ------------- | ---
| Bug fix?   | no
| New feature?      | yes
| BC breaks?      | no
| Deprecations?      | no
| Tests pass?      | -
| Fixed tickets     | #11297
| License     | MIT
| Doc PR | -
This `$hardCopy` logic is a little hard to read. It might be easier to read if the actual "hard copy" logic below were moved into a new `private function makeHardCopy` and then called from here and called from below. But that's minor - if you try it, make sure it *does* in fact seem clearer to you