TISTUD-5417 Inconsistent PATH lookup for Node and other components

TISTUD-5417 Inconsistent PATH lookup for Node and other components
- Refactor so INodePackageManager is tied to an INodeJS installation and we explicitly execute npm commands underneath that node install
- Break out an INodeJS interface and impl to represent a NodeJS install, ove some functionality from INodeJSService there.
- Renamed some INodeJSService methods to make more explicit what they return.
- Update callers to use new API