cargo2ebuild: Use CROS_RUST_REMOVE_TARGET_CFG when possible.

This is a fairly extensive overhaul that adds a dependency graph model
that handles reusing system ebuilds when possible.

Additional changes:
* Added logging and verbosity flags.
* -X add for upgrading crates when system versions would already work.
* -x apply to empty crates.
* default values added to most parameters.
* Added error messages for cases that require user changes.
* Features are not tracked to determine if optional dependencies
  should not be empty.
* Switched DESCRIPTION and HOMEPAGE to single quotes to prevent
  unintended variable expansion or sub-shell execution.

BUG=chromium:1182669
TEST=manual testing

Change-Id: I53eab1af0c2bc6321155dcedb96c622a2d59d532
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/dev-util/+/2867124
Reviewed-by: Abhishek Pandit-Subedi <abhishekpandit@chromium.org>
Commit-Queue: Allen Webb <allenwebb@google.com>
Tested-by: Allen Webb <allenwebb@google.com>
1 file changed