made hideKeyboard more robust

Robustified hideKeyboard code.  Works with existing tests but will be adding new functional tests for swipe fallback.
We've got a situation where we're in a tough spot either way.  Defaulting to swipe doesn't always work either, as in our test.  Let's add a new "swipe" strategy.  That way, if someone is expecting a specific button to close the keyboard, they won't be getting a false positive because we're actually swiping.  If people want to swipe, they can do so intentionally.