Adding the concept of modes

All plugins now advertise in what mode they are. This mode defaults to `'editor'`.

Modes can be overwritten through individual plugin configuration, but also by defining mode in a `globalDefaults` object, which should sit in the `main` section of a configuration file. Unless plugins define a mode for themselves, this global default mode will be used to configure every plugin.

This pull request demonstrates how the `token` directive takes already advantage of that. Its click handling changes whether we are editing or not. (take note of the larger comment in 2b5e8da - implementation details will change in the future)

Brings also some changes to the selection logic in `state`. Up until now we where always changing heads when a specific click order was applied, after this PR a third param needs to be passed to `state.selectTokens()` or `state.toggleSelection()`, which determines whether a head should be changed or not.

Eventually this will be driven out of `state` entirely of course (and moved to the `depTree` plugin) - e.g. this would not play well with a translation alignment editor, which might have different ideas on what to do with token click events.