Implemented suggestions from @BlueJeansAndRain

* It only modifies the instance of Needy that required it.
* Now this works whether __needy.resolver is a function or an object.
* Now when modules are required more than once it will cache both paths.