add 'keyboardDidHide' notification handling

fixes #645, and possibly related issues

:: JSQMessagesKeyboardControllerDelegate protocol adds optional `keyboardControllerDidReceiveKeyboardHideNotification:` method
:: this method is called within the completion block of the typical keyboard frame change notification handler, ensuring that the 'hide' message is received last
:: `JSQMessagesViewController` uses this delegate callback to call `jsq_setToolbarBottomLayoutGuideConstant:` with a value of `0.0f` (ensuring that a 'hidden' keyboard results in a 0-position input toolbar)
let's remove `@optional` to make this required