In your patch to `ace.js` I see that these events carry data objects of `{position: docPos, token: token}` but here we are only exposing the `Point` for `position`?  Probably we should define a `LinkEvent` class that contains all of this data?  

We don't currently have a `Token` class so we also probably need that for the `LinkEvent` class.  This is a class we'd eventually need to expose other parts of the API as well.