Skeleton splitting/merging: make dialog support merging

Most of the existing splitting dialog can be re-used for merging. It will be a
merge dialog when two models are passed to the constructor. Otherwise it will
be a split dialog.
Skeleton merging: use new dialog on shift + click
Neuron annotations: use neuron ID instead of object for annotation

This simplifies the API a bit and avoids forcing caller to request the neuron
object when there is only an ID available (and in fact required).
Skeleton merging dialog: add method to get all selected annotations
Neuron merging: show new dialog also for interpolated join
Neuron merging: show created link between skeletons in 3D viewer

The new link(s) between new and existing nodes that would get created by a merge
are now displayed as a green line in the 3D viewer of the merge dialog.
Neuron merging: allow all annotation change once dialog is open

When a user was able to open the dialog, the front end will allow all annotation
changes (even unselection all). The backend can still prevent this chagne if a
user actually hasn't the permission to modify the skeletons in question.
Make treenode_info internally accessible
Neuron annotations: add new permission testing function

The method can_edit_class_instance_or_fail provides a similar test to the
existing can_edit_or_fail method. It is, however, based on th new annotation
system. A class_instance (e.g. a neuron) can be locked, i.e. it is annotated
with the annotation named 'locked'. A user is only granted permission to edit a
class_instance if it is a) not locked or b) if it was locked by the user or by
a user of who's group (s)he is part of.
Neuron annotations: put new permission system in place

Connector and link permission checks are not updated with this commit.
Add permission test API for class instances and skeletons
Skeleton splitting: test permissions properly
Skeleton merging: add permission checks to front-end
Skeleton joining/merging: make list boxe height dialog dependant