Save and use resolutions to resolve conflicts.
Update doc and add TODO.
Inform the user when a conflict was resolved with a configured resolution.
Read, use and update persistent resolutions.

Add --save-resolutions to deal with this.
Also:
  - Adjust logging when using compact
  - Minor code adjustments.
Fix detection of unsuitable resolutions.
Tweak messages.
Add cache clean and list commands.

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
Fix cache list not displaying the correct version.
Minor fix to sorting versions.
Fix error logging.
CS.
Fix reusing of compatible dependencies.
Protect against empty origins.
Small fix.
Remove --save-resolutions in favor of prefixing choices with !.

Also improve the manager resolution process by avoiding to fetch incompatible packages always.
Now lazy fetches them when necessary.
Fix typos in README.
Improve doc blocks and minor bug fixing.
Tweak cache list and clean output.
Add list command, some other fixes and improvements.

- Fix cache clean command
- Lots of improvements and fixes of the Manager
- Only save json if the contents changed
- Add nom like tree to installed/updated packages
- Fix help usages.