fb: Fix wrong IME state handlings on keyboard switches

We assumed that calling updateFromSettingsLocked(true) is in all value changes
a possible way to simplify the process. In reality this fails when the user
switches eg between 2 IME keyboards several times due that we call every
time

                        mIPackageManager.setApplicationEnabledSetting(imm.getPackageName(),
                                PackageManager.COMPONENT_ENABLED_STATE_DEFAULT,
                                PackageManager.DONT_KILL_APP, mSettings.getCurrentUserId(),
                                mContext.getBasePackageName());

which results in wrong mCurMethodId which ends in method calling which should not be called
and result in an NPE and hotreboot due of dieing service.

To fix it go only for showinputmethod feature the old way and restore for all other
value changes AOSP behaviour and check specifically if enabledChanged is true or not
based on the getEnabledInputMethodsStr() method during we lock on mMethodMap

Thanks for the detailed report to Natakranta

Change-Id: Iff1f598a57cfd1f0fc45a2c4ebca1a43dfeb02d6