Further improved rotation handling and started using keyboard will show notification to dynamically update the keyboard animation duration. Also added startEditing so that we can remove reliance on calling resignFirstResponder and becomeFirstResponder directly on the messageTextView from outside the class.