Handle contentEditable elements correctly

Continuation of #1050.

This PR makes link hints handle `contentEditable` elements correctly, and ensures we disable our shortcuts while such elements are active. This

* fixes #888 
* fixes #1136 
* fixes #1245.
`anchorNode` is a node, which may or may not be an element, and only elements support `isContentEditable`. So, 

* If it is an element, we can just check `isContentEditable`
* If it isn't an element (eg. a text node), we take the `parentElement`, which is necessarily an element, and check `isContentEditable` on that.