Adding newlyConnectedKeyboard flow to KeyboardRepository

newlyConnectedKeyboard emits new physical Keyboards that are connected to the device.

Other changes:
1. Because keyboardConnected starts to be confusing now, I renamed it to isAnyKeyboardConnected.
2. Extracting  inputDeviceListener flow to separate shared flow so that both newlyConnectedKeyboard and isAnyKeyboardConnected can use it without each registering their own listener.
3. Commenting KeyboardRepository flows
4. Adding tests for newlyConnectedKeyboard

Flag: KEYBOARD_EDUCATION
Bug: 277192620
Test: KeyboardRepositoryTest
Change-Id: I61044362a4e924d80546ae92300844280174db00
7 files changed