Refactor RCTKeyCommands, allow hotkeys to be used without command key
Refactor RCTKeyCommands, allow hotkeys to be used without command key

Summary:
This diff updates our RCTKeyCommands code to be more resilient by copying the [FLEX strategy for key commands](https://github.com/Flipboard/FLEX/blob/master/Classes/Utility/Keyboard/FLEXKeyboardShortcutManager.m).

This strategy swizzles UIApplication handleKeyUIEvent which is further upstream than our UIResponder. It also allows for single key hotkeys like pressing just `r` instead of `cmd+r`. It does this without interfering with typing input  by checking the first responder first.

I've also updated our hotkey handling to support using just the keys like `r` in addition to `cmd+r`. In addition to brining these hotkeys more in line with other iOS tools, they're also easier to use and do not suffer the same issues hotkeys with modifiers like `cmd` have where keys are dropped.

Changelog: [iOS] [Added] Allow hotkeys to be used without command key

Reviewed By: shergin

Differential Revision: D21635129

fbshipit-source-id: 36e0210a62b1f310473e152e8305165024cd338b

javache/react-native,hoangpham95/react-native,facebook/react-native,javache/react-native,arthuralee/react-native,hoangpham95/react-native,pandiaraj44/react-native,javache/react-native,javache/react-native,myntra/react-native,janicduplessis/react-native,facebook/react-native,arthuralee/react-native,javache/react-native,javache/react-native,myntra/react-native,myntra/react-native,arthuralee/react-native,pandiaraj44/react-native,javache/react-native,hoangpham95/react-native,facebook/react-native,janicduplessis/react-native,facebook/react-native,janicduplessis/react-native,facebook/react-native,pandiaraj44/react-native,hoangpham95/react-native,facebook/react-native,janicduplessis/react-native,hoangpham95/react-native,janicduplessis/react-native,janicduplessis/react-native,facebook/react-native,myntra/react-native,hoangpham95/react-native,myntra/react-native,pandiaraj44/react-native,myntra/react-native,myntra/react-native,janicduplessis/react-native,hoangpham95/react-native,hoangpham95/react-native,javache/react-native,arthuralee/react-native,janicduplessis/react-native,myntra/react-native,pandiaraj44/react-native,pandiaraj44/react-native,facebook/react-native,myntra/react-native,facebook/react-native,arthuralee/react-native,javache/react-native,pandiaraj44/react-native,pandiaraj44/react-native