Add initial support for NPM package registries
Created by: varungandhi-src
Stacked on top of #28056 .
Bunch of initial commits are just no-ops moving things around. The last commit is a bit big, but that seemed kinda' hard to break into separate parts.
NOTE: Database support and support for credentials will be added in future PRs, I've just marked TODOs right now so that it is easier to identify all places which will need changes in the future.