Refactors ui::InputMethodFactory.

The motivation is that Ozone wants to hook an input method factory method because Ozone has to determine which InputMethod subclass should be instantiated on runtime.  In addition, ui/base/ime cannot refers to Ozone specific code in ui/ozone/platform.

Introduces InputMethodFactory interface and lets clients not only choose which factory should be used, but also create their own factory.

BUG=312211
TEST=none

Review URL: https://codereview.chromium.org/103853002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238947 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 238947
SyncFS v2: Add some protection not to delete local root folder

BUG=240165

Review URL: https://codereview.chromium.org/106163002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238948 0039d316-1c4b-4281-b951-d872f2087c98
Rename InputMethodEngineIBus to InputMethodEngine

BUG=N/A

Review URL: https://codereview.chromium.org/106253002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238949 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 238949