Topicmap renderer refactoring, pt.1 (#505).

BREAKING CHANGES

In preparation of the imminent refactoring of the topicmap renderer framework some client-side classes are renamed:

    Webclient:
        DefaultTopicmapRenderer  -> CanvasRenderer
        DefaultTopicmapViewmodel -> CanvasView
            CanvasTopic -> TopicView
            CanvasAssoc -> AssociationView

    Topicmaps:
        Topicmap            -> TopicmapViewmodel
        TopicmapTopic       -> TopicViewmodel
        TopicmapAssociation -> AssociationViewmodel

    Geomaps:
        Geomap      -> GeomapViewmodel
        GeomapTopic -> GeoTopicViewmodel

=> Plugins which provide a topicmap renderer implementation must be adapted.

Furthermore one object is renamed:

    dm4c.canvas -> dm4c.topicmap_renderer

=> Plugins might require to be updated.

See #505.
Topicmap renderer refactoring, pt.2 (#505).

Concept: proper separation of model, viewmodel, and view.
    - A **model** contains the domain data.
    - A **viewmodel** contains the domain data to be displayed enriched by view data (e.g. color values, coordinates).
      A viewmodel is agnostic to a specific renderer technology.
    - A **view** renders a (compatible) viewmodel through a specific renderer technology, e.g. Canvas, HTML, SVG.
    - A **topicmap renderer** binds a viewmodel to a view.

The same viewmodel can the rendered through different views (that are compatible with that viewmodel).

Implementation objectives:
    - responsibility for updating the viewmodel is at the respective topicmap renderer (not the Topicmaps plugin).
    - no redundant selection model and translation model in viewmodel and view. The viewmodel is authoritative.

The Topicmaps plugin is now a Webclient dependency. It is no longer an optional install.

+++ NOT FUNCTIONAL +++

See #505.
Refactor topicmap renderer framework, pt.3 (#505).

Creating and updating topics/association works.

+++ NOT FULLY FUNCTIONAL +++

See #505.
Refactor topicmap renderer framework, pt.4 (#505).

Hiding and deleting topics/association works.

BREAKING CHANGES

TopicmapRenderer interface:
    - remove_topic() replaced by hide_topic() and delete_topic()
    - remove_association() replaced by hide_association() and delete_association()

Remember: the topic renderer is responsible for updating the viewmodel now.

+++ NOT FULLY FUNCTIONAL +++

See #505.
Refactor topicmap renderer framework, pt.5 (#505).

Refactoring is basically done.

+++ FUNCTIONAL +++

See #505.
Refactor topicmap renderer framework, pt.6 (#505).

Remove unused code.

See #505.
Refactor topicmap renderer framework, pt.7 (#505).

Move certain cluster code from view to viewmodel.

BREAKING CHANGES

Topicmaps plugin: rename REST client methods
    dm4c.restc.move_topic()   -> dm4c.restc.set_topic_position()
    dm4c.restc.move_cluster() -> dm4c.restc.set_cluster_position()

See #505.
Topicmap renderer refactoring, pt.8 (#505).

Move Canvas specific code from renderer (CanvasRenderer) to view (CanvasView).

BREAKING CHANGES

TopicmapRenderer interface:
    - close_context_menu() removed

See #505.
Topicmap renderer refactoring, pt.9 (#505).

Polish TopicmapRenderer interface.

BREAKING CHANGES

2 methods in the TopicmapRenderer interface are renamed to better express their semantics:

    - add_topic()       -> show_topic()
    - add_association() -> show_association()

The TopicmapRenderer methods have no `refresh_canvas` parameter anymore. It is the responsibility of the renderer implementation (not the webclient's) to keep the display up-to-date.

    - update_topic(topic, refresh_canvas)          -> update_topic(topic)
    - update_association(topic, refresh_canvas)    -> update_association(topic)

    - hide_topic(topic_id, refresh_canvas)         -> hide_topic(topic_id)
    - hide_association(assoc_id, refresh_canvas)   -> hide_association(assoc_id)

    - delete_topic(topic_id, refresh_canvas)       -> delete_topic(topic_id)
    - delete_association(assoc_id, refresh_canvas) -> delete_association(assoc_id)

    - reset_selection(refresh_canvas)              -> reset_selection()

See #505.
Geomaps: adapt to new Topicmap renderer (#505).

See #505.
Topicmaps: fix hiding/deleting associations.

See #505.
Webclient: fix canvas highlighting (#505).

See #505.