Global keyboard listener

Creates a global keyboard listener and uses the rect from that to calculate the keyboard height. Otherwise a popover appearing when the keyboard is already visible would not take the keyboard into account since the keyboard appearing notification would already have been fired before the popover started to listen for it.