CHERRY-PICK: CHROMIUM: Input: elan_i2c - Add lid event listener

The patch tries to add a LID input event filter to listen for SW_LID events
to enable/disable touchpad when LID is open/closed.

Signed-off-by: Duson Lin <dusonlin@emc.com.tw>
BUG=chrome-os-partner:29727
TEST=Do the following on device with Elan touchpad.
 * Test normal lid-closed suspend :
  1. log in as guest
  2. close the lid, wait for suspend
  3. open the lid to resume
  4. Check that touchpad is responsive.

 * Test suspend, lid-closed, then lid-open:
  1. log in as guest
  2. wait for the suspend
  3. close the lid
  4. opend the lid to resume
  5. check that touchpad is responsive.

 * Test normal lid-open, suspend, then lid-closed:
  1. log in as guest with external DISPLAY+keyboard connected with lid-open
  2. wait for the suspend
  3. close the lid
  4. wake up the device with external keyboard
  5. ensure no stray touches from touchpad*

 * Test Docked mode, lid close-open, no suspend :
  1. log in as guest
  2. connect external display to extend monitor
  3. close the lid to enter docked mode
  4. ensure no stray touches from touchpad here*
  5. open the lid
  6. Check that touchpad is responsive.

 * Test Docked mode, lid closed, idle suspend :
  1. log in as guest
  2. connect external display and connect USB keyboard.
  3. close the lid to enter docked mode
  4. ensure no stray touches from touchpad here*
  5. from a remote shell (ssh) : powerd_dbus_suspend
  6. strike a key from usb keyboard to resume.
  7. ensure no stray touches from touchpad here*
  8. open the lid
  9. Check that touchpad is responsive.

 * Test normal lid-closed suspend with external mouse, docked mode, lid open:
  1. log in as guest
  2. connect USB keyboard.
  3. close the lid to enter suspend mode
  4. connect external display
  5. strike a key from usb keyboard to resume.
  6. ensure no stray touches from touchpad here*
  7. open the lid
  8. Check that touchpad is responsive.

  *: To check that no stray touches occur:
  a) ssh to dut.
  b) run "evtest" command.
  c) open the lid a little bit(good enough for your finger to touch the pad, but
     make sure it won't trigger lid open event.
  d) a finger touches the pad to verify that touchpad should not be responsive.

Change-Id: Idee243d24ab708eac4bf85e09785e34013f29611
Reviewed-on: https://chromium-review.googlesource.com/205640
Reviewed-by: Chung-yih Wang <cywang@chromium.org>
Reviewed-by: Benson Leung <bleung@chromium.org>
Tested-by: Benson Leung <bleung@chromium.org>
Commit-Queue: Benson Leung <bleung@chromium.org>
(cherry picked from commit 646e0a5f141a5f4f3a96b0aca53cd5bf7933f668)
Reviewed-on: https://chromium-review.googlesource.com/232030
Reviewed-by: 政維 林 <dusonlin@emc.com.tw>
Commit-Queue: 政維 林 <dusonlin@emc.com.tw>
Tested-by: 政維 林 <dusonlin@emc.com.tw>
Reviewed-by: Katie Roberts-Hoffman <katierh@chromium.org>