New config added that allows hoisting packages by pattern.
This substitutes the shamefully-flatten config that hoist all
dependencies and makes them available for application code.
The new config gives access to the hoisted packages only to
dependencies inside node_modules.
close#1998close#1938
PR #1997
PR #1606
* feat: wip
* refactor(filter-shrinkwrap): divide into several files
* fix(filter-shrinkwrap): filterByImporters should skip skipped deps
* fix: make package-is-installable synchronous
* feat: implement filterByImportersAndEngine()
* fix: headless install skips optional deps that are not installable
close#1600
* fix: don't await for packageIsInstallable
* fix: absolute dep path should be saved in skipped list
* test(filter-shrinkwrap): more tests for filterByImportersAndEngine()
* test: skipping optional dep when installing in subset of wpackages