allow peer dependencies to be satisfied by grandparent

this matches the behavior of `npm install` when the dependency graph is more than one level deep.

currently, a `npm ls` immediately after a `npm install` will complain (`plugin` peer-depends on `framework`):
<pre>example@0.0.0
├── framework@0.0.0
└─┬ plugin-wrapper@0.0.0
  └─┬ plugin@0.0.0
    └── UNMET DEPENDENCY framework 0.0.0</pre>