nodePackages: fix builder

- reuse unpack and patch phase
- patch shebangs of source code
- properly patch depdency versions (thanks @svanderburg)
- add patching for github version names
- add some inline docs
- fix recursive depdencies runtime handling by copying files instead of
  symlinking if package has recursive dependencies