power: Bring back code for adjusting external brightness.

This adds an ExternalDisplay class that can adjust an
external display's brightness via the DDC/CI protocol. It
also updates the ExternalBacklightController class to watch
for changes to the set of connected external displays and
adjust their brightness in response to user requests to
increase and decrease the screen brightness.

BUG=chromium:315371
TEST=added unit tests; also manually confirmed that
     brightness keys work on stumpy with various displays
     now after telling chrome to send requests

Change-Id: Ie690d9d896cfc26ae0b300082cf64bd8402be579
Reviewed-on: https://chromium-review.googlesource.com/189203
Tested-by: Daniel Erat <derat@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Commit-Queue: Daniel Erat <derat@chromium.org>
8 files changed