Filter function fixes

* Don't track hotkeys triggered on a `contenteditable` element
* Support overriding filter function at Query.hotkeys.filter
* Clean up filter conditionals