fix(lockfile): traverse npm peer dependencies (#4981)
### Description
In #4824 I removed the peer dependencies when collecting all
dependencies for a package. This is correct behavior for npm3-6, but is
overly strict for npm7+ as npm will automatically install peer
dependencies if they aren't provided. This partially addresses #4915,
but doesn't handle the case where a workspace has peer dependencies that
the host package doesn't provide. I will address that, but that requires
a much larger change to how we construct the workspace graph and
extending our package manager interface.
### Testing Instructions
Tests added in ##4824 still pass along with a new unit test that
verifies we pick up peer dependencies
---------
Co-authored-by: Chris Olszewski <Chris Olszewski>