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.