Since we don't download Node until the first time source-nvm.sh is run, that means Node gets downloaded in the prod-build step.
prod-build needs to rerun whenever any files change, but Node should only need to get downloaded when the version changes.
This diff uses Docker build caching to call source-nvm.sh earlier, so that we can make it cheaper to rebuild when a source file changes.
Depends on D4213