[Mfill Android] Move UI component into new feature folder

With this CL, the keyboard accessory component moves into the new folder

To keep the public interfaces separated from the implementation, move
them into:

chrome_junit_test won't include the keyboard_accessory_junit_tests by
default anymore which speeds up the compile time of the latter. To
ensure that the bots still exercise these tests, they were added to the

Summary of changes:
 - move everything to chrome/android/features
 - create BUILD.gn file with new targets
 - add new java targets to chrome/android:java
 - add new test targets to bot configs
 - split out public/ interface
 - add factory to retrieve correct implementation during run-time
   - temporary use of reflection until injection method is agreed upon?
 - fix dependencies (subset of chrome/android/ dependencies)
 - fix DEPS (subset of chrome/android/ DEPS)

Intentional side-effects:
 - keyboard_accessory/OWNER file affects feature res/ folder

To generate a gradle file including the feature, make sure to add the
java target, like this:
. build/android/envsetup.sh && \
build/android/gradle/generate_gradle.py \
  --output-directory out/AndroidDebug \
  --target //chrome/android:chrome_public_apk \
  --target //chrome/android:chrome_public_test_apk \
  --target //chrome/android/features/keyboard_accessory:java

To run the new robolectric tests:
ninja -C out/AndroidDebug  -j2000 -l20 keyboard_accessory_junit_tests

Bug: 945314, 846440
Change-Id: I676d0e22a5cb02eb97459da6047fda00f09a7902
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1545301
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: Vadym Doroshenko <dvadym@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Theresa <twellington@chromium.org>
Reviewed-by: Peter Wen <wnwen@chromium.org>
Commit-Queue: Friedrich [CET] <fhorschig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#653504}
170 files changed