Handle keyboard : shrink if keyboard appears and overlaps popover. Re-grow when keyboard is dismissed.

Refactored : Smaller, better named methods