Cherrypick #1112 to master
There are some crash reports coming from `KeyboardPickerActivity.java` because the keyboards list is null (file access error). When the app tries to display the installed keyboards list, this results in the crash.
`getKeyboardsList()` already checks the existence of the `keyboards_list.dat` file, so some of that code is also redundant.
Bring in the current app info page from https://help.keyman.com/products/android/10.0/
* Update to Khmer Angkor
* Update images
* Removes references of sharing to Facebook
- Does not include cross-references to versions 2.0 and 10.0 since this is an offline info page.
Fixes#913
In #848, we used [webView.pauseTimers()](https://developer.android.com/reference/android/webkit/WebView#pauseTimers()) to disable JavaScript for transitioning between in-app and system keyboards. Unfortunately, `pauseTimers()` globally affects all the WebViews, breaking the globe button in system keyboards.
(This worked going from the Keyman app to in-app browser because the browser "resumed" its keyboard)
Solution is removing calls to `pauseTimers()`.
Fixes#750
Currently, Keyman for Android targets SDK version 25 (Nougat).
This PR targets the latest Android API and updates all the Gradle dependencies to the latest. This will remove some lint Obsolete warnings.
Sample and Test projects needed to add
```
implementation 'com.android.support:support-v4:27.1.1'
```
to ensure all dependencies use the same version.
Updated `KMManager` to handle `pauseTimers()` and `resumeTimers()` for in-app and system keyboards. This fixes the globe button when transitioning from the WebBrowser activity back to the Main activity.
Also fixed KMKeyboard to return empty string when `txtFont` is empty (and not return a root path)
Fixes#819
* If package version undefined, use "1.0"
* Keyman Developer won't allow undefined package name, but just in case return package ID from the filename
* Check for null before String.toLowerCase()
* Added package processor test for undefined version