lint_fix: various quality of life improvements

This revamps lint_fix to do as much as possible
directly in python, rather than stitching together shell commands.

It also adds a few small features to lint_fix to save time and
confusion:
- Rather than having to specify the `full/math/to/a/module`, one can
  just specify the module name: e.g. `framework-minus-apex` instead
  of `frameworks/base/framework-minus-apex`
- Add a `--lint-module` argument to specify a custom lint module to
  be passed to the lint invocation. This is useful when we want to run
  all checks from that module (rather than specifying each one
  individually).
- Add a `--print` argument to print the contents of the lint report at
  the end. This is useful for invocations that lead to warnings but
  not errors.

Bug: 232058525
Test: TH
Change-Id: Ic1e038061618e185a652cf3d2293d895ec09762c
4 files changed