Fix #677 : add a listener mechanism in MSurfaceView::dispatchKeyEventPreIme
Bug #677 : alternate fix

Following the discussion and comments 2 and 3 in
the bug report, this commit proposes a better
implementation:

When the softKeyboard is visible
And the user pressed its Back button
Then WindowDriver handles a key event
VK_KEYBOARD_INVISIBLE

This is more platform agnostic than (yet another)
listener.
Bug #677 : fix

There is no way to know the visibility of
the softKeyboard on Android. So, we expect that
the developer uses GLWindow::setKeyboardVisible()
and store the visibility.

About comment #3 : we want the regular Back button
behavior when the softKeyboard is visible,
so dispatchKeyEventPreIme() must return false
and let the IME handle the event.