Also: - Fix some errors not being emitted when a command failed. - Update semver module; no need to check .valid against null.
This was an huge commit. - Allow nested commands - Switch resolve cache in memory object cache to LRU - Store non-semver packages in the cache - Tweak help messages - Various fixes and tweaks