Use the right user's spell checker in InputMethodUtils

This CL fixes a regression that was introduced when
TextServicesManagerService (TSMS) was updated to support multiple
users [1].

Now TextServicesManager#getCurrentSpellChecker() always returns a
result for the calling user, if it is called from the system server
process it always returns the result for the main user (user ID = 0),
unless the caller is in the middle of IPC transaction.

InputMethodUtils#setNonSelectedSystemImesDisabledUntilUsed() had this
issue.  To make it correctly work, we need a special version of
getCurrentSpellChecker() that takes user ID as a parameter.

Luckily InputMethodUtils is guaranteed to be running in the system
server process [2], we can simply rely on TextServicesManagerInternal
instead of adding @hide APIs into TextServicesManager.

 [1]: I06c27ef834203a21cc445dc126602c799384527b
      06a2624049f09e1ad68f8ab74fdb525aacd5c1e5
 [2]: I37594096151d77adb6741a41d7985a4506f96ccb
      e6b6e0e7853500d6d1aaf3326d487037dff1d2a8

Bug: 63041121
Test: manually done
Change-Id: I278fce6d8c588aaa5a12936fcab45be29a6c3a0b
3 files changed