Check if keyboard is visible before animations

Check if keyboard is visible before performing animations on it after
UIGestureRecognizerStateEnded.
When the user swipes down too fast, the keyboard is no longer visible,
but jsq_handlePanGestureRecognizer:(UIPanGestureRecognizer *)pan still
tried to animate it.
Returning early instead of large conditional block

In response to jessesquires pointers in the pull request issue_213_fix.
Compare using <= 0.0f instead of == 0.0f

Slightly more robust, in case the keyboard is ever positioned even
lower than the height of contextView.
Improved keyboardViewIsHidden calculation
Merge pull request #231 from koenbud/issue_213_fix

issue_213_fix - Check if keyboard is visible before animations
minor tweaks to keyboard controller
only dismiss keyboard if dragging down near input bar
disable keyboard interaction during dismiss
reset statusBarChangeInHeight on rotation. and dismiss keyboard. cc: issue #219
Merge commit '5436bd3a7d26b55a35ba5ec51d6f2353e0c4eb53' into version_5_release

* commit '5436bd3a7d26b55a35ba5ec51d6f2353e0c4eb53':
  reset statusBarChangeInHeight on rotation. and dismiss keyboard. cc: issue #219
  disable keyboard interaction during dismiss
  only dismiss keyboard if dragging down near input bar
  minor tweaks to keyboard controller
  Improved keyboardViewIsHidden calculation
  Compare using <= 0.0f instead of == 0.0f
  Returning early instead of large conditional block
  Check if keyboard is visible before animations