IME Navbar: temporarily hide the keyboard during navbar toggling on hardware navkey devices

this makes sure the keyboard is vertically above the navbar, rather than occluded by it.

Change-Id: If769252a4e62ba66ff3a58c02f85163d218ee939
Fix occasional failure to disable navbar

If the observer in PSB fires before that in WM, then WM.hasNavigationBar() would still be true. When ored with the System.Setting, which should be false at that time, would not remove the navbarview.

TODO: handle navbar state outside of WM with a broadcast from WM, rather than letting other things use the system setting directly

Change-Id: Ie65f81bc6db4a1cac831755b0b8c39db386d95dd