[IOS] Fix native keyboard not show if was canceled before it did show

On ios4 with ipad, found that the ios will not send the keyboard did hide notification if the keyboard was canceled before the keyboard did show.
So fix this by trace the keyboard show state, and delay doDeactivate action until keyboard did show.

with bluetooth keyboard attached, above fix is not enough, I found that there is chance the doDeactivate method be called in ui thread before the finished event reset code in activate method. so here's additional commit to move the event reset code for finished event into ui thread.