Work in Progress: Initial implementation of `--doctor` command
This is an initial version of the --doctor command, which will check various settings of a user's environment and identify possible incompatibilities with delta.
This PR is intended to show a potential pattern for adding new --doctor checks, so I've intentionally kept the list of handled checks short, in anticipation of structural changes that are suggested during code review.
The suggested pattern for adding new checks is to add a new struct that implements the Diagnostic trait, comprised of the following methods:
diagnose: gets the setting in the user's environment, and compares it to allowed settings. Returns aHealthobject with a diagnosis & remedy if the setting is potentially incompatible with delta.remedy: Suggests a remedy, if theHealthobject returned bydiagnoseindicates that the setting may be incompatible.report: Reports the value of the setting, whether or not it is "healthy".
Currently, delta --doctor prints the report to stdout.
Addresses https://github.com/dandavison/delta/issues/1184.
Thanks for the review @dandavison! I made the updates you suggested.
Rebased on master