This introduced a bug which breaks init and adduser.
Don't call deprCheck if data is undefined and don't throw custom error in mkdir-p.js so that the original error propagates to the errorHandler and more meaningful error message can be displayed.
Whenever an EMFILE occurs, rather than simply setting a 0 timeout, progressively increase the timeout value each time, so as to ensure that successive fs operations don't keep hitting the same wall.
Fix several issues related to not being able to uninstall things for one reason or another. Add the --recursive flag to recursively uninstall all the dependents that would whine about something disappearing (with a warning, since it could cause some unexpected behavior or stuff going away.) Add the --force flag to uninstall things, even if doing so would cause a dependent package to possibly no longer function properly. This is *really* not a good thing to do, and I waffled on it a lot, but there are some cases where garbage or broken links can exist, and having the tool is better than not having it. Don't respect links in the dependents folder that aren't actually links to proper valid working packages with a package.json file. Just ignore em.