Webclient: on_mousedown customizer method (#505).

New topicmap renderer customizer method:

`on_mousedown(pos, modifier)` -- allows interfering with canvas mousedown events.
    `pos` -- an object with 2 properties:
        `canvas` -- the mouse position in canvas coordinate space (has x/y properties)
        `topicmap` -- the mouse position in topicmap coordinate space (has x/y properties)
    `modifier` -- an object with 1 property:
        `shift` -- state of the shift key (boolean)
Returning `true` triggers the default behavoir.

Furthermore: the customizer constructor function receives one argument:

`canvas_view` -- a CanvasView facade: an object with 1 property:
    `iterate_topics` -- a function which iterates through all ViewTopics visible on the canvas,
        as enriched by customizers. Receives a visitor function which is passed a ViewTopic.
        Returning something from the visitor function stops the iteration and iterate_topics
        returns that value.

The CanvasDefaultConfiguration class is a private CanvasView class (not located in separate file anymore).

See #505.