Adding KeyEvent re-injection support in CarInputService

Note: for testing purposes, a new custom function (f6) was added in reference implementation service.
This function re-injects the KEYCODE_HOME event and should be used as a guideline / reference implementation only.

Test script:
1. Start emulator.
2. Build test service reference implementation:
   ```
   make SampleCustomInputService -j64
   ```
3. Install service reference implementation:
   ```
   adb install -r $OUT/target/product/emulator_car_x86/system/app/SampleCustomInputService/SampleCustomInputService.apk
   ```
4. Start service
   ```
   adb shell am start-foreground-service com.android.car.custominput.sample/.SampleCustomInputService
   ```
5. Send custom input events

   To start activity maps on main display:
   ```adb shell cmd car_service inject-custom-input -d 0 f1```

   Then go back to home by running:
   ```adb shell cmd car_service inject-cutom-input -d 0 f6```

Bug: 159623196
Test: manual (see script above)
Test: atest CarServiceUnitTest
Test: atest CarServicesTest
Test: atest SampleCustomInputServiceTest (requires SampleCustomInputTestService.apk)

Change-Id: Ie92f7b2a3ff93dee69e4a17f0cbbac8817ae202e
10 files changed
tree: a840fe9d95a7f35c4a90326c7b1bda3e92327c27
  1. car-bugreportd/
  2. car-internal-lib/
  3. car-lib/
  4. car-maps-placeholder/
  5. car-systemtest-lib/
  6. car-test-lib/
  7. car-usb-handler/
  8. car_product/
  9. cpp/
  10. evs/
  11. experimental/
  12. FrameworkPackageStubs/
  13. obd2-lib/
  14. packages/
  15. procfs-inspector/
  16. service/
  17. tests/
  18. tools/
  19. user/
  20. vehicle-hal-support-lib/
  21. .clang-format
  22. .gitignore
  23. Android.mk
  24. CleanSpec.mk
  25. CPPLINT.cfg
  26. OWNERS
  27. PREUPLOAD.cfg
  28. README.md
  29. TEST_MAPPING
README.md

Native (C++) code format is required to be compatible with .clang-format file. Run

git clang-format --style=file --extension='h,cpp,cc' HEAD~

Note that clang-format is not desirable for Android java files. Therefore the command line above is limited to specific extensions.