labtation: Add code to abstract USB hub handling from servod.

Implement per port power cycling for Cambrionix in a way that
will allow all port cycling to go through this tool and for
servod to have all hub code removed.

BUG=b:278585904
TEST=manual run on a fizz-labstation with a cambronix hub and 10 duts
attached.

Change-Id: Ie6ec69c6d41451bc406ffbba639c1afd49444016
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/labstation/+/5450877
Tested-by: Keith Haddow <haddowk@chromium.org>
Auto-Submit: Keith Haddow <haddowk@chromium.org>
Commit-Queue: Keith Haddow <haddowk@chromium.org>
Reviewed-by: Garry Wang <xianuowang@chromium.org>
24 files changed
tree: c2e064050f3192d2226513497621b6f7f1e91f94
  1. os-dependent/
  2. usb_hubs/
  3. .isort.cfg
  4. DIR_METADATA
  5. OWNERS
  6. PRESUBMIT.cfg