Persist npm's cache between builds

`$npm_config_cache` allows npm's cache to be location somewhere other than `$HOME/.npm`

This also changes cache operations to explicitly deal with `$cache_dir/node_modules` to allow composed buildpacks to effectively use the cache (otherwise the "Caching node_modules" step would stomp on other users of the cache).