Refactor responder chain logic into separate class

This allows use of the "select adjacent" functionality by code other than the toolbar, even without necessarily having to use the inputAccessory at all.
Useful for e.g. the "Next" return key type on the keyboard. I've updated the demo app to demonstrate this.