Handle nonexistent packages in Resolve.explicit

Fixes #810.
Factor out the calling of args.func into a function

This makes it possible to do the same catching of RuntimeError in external
packages like conda-build.
Actually run the command!
Don't print an error with conda config --get for other key types
Give a better error message for 404

Fixes #808.
Add `conda launch` command
Disable logging with --json, enable regardless with --debug
Add conda info *args --json
Don't assume args.json exists
Add --json to conda list
Add conda search --json
Add conda search --canonical --json
Make conda list --json always use canonical package names
Add conda remove --json (WIP)
Modify ensure/check functions of CLI to optionally output JSON
Modify read-only-root message to optionally output JSON
Modify pscheck to optionally not output to console
Handle JSON output in all cases of conda remove
Remove redundant 'Error:' text
Fix --json and check_write