Annotation search: don't try to highlight without skeleton ID
Annotations: avoid unneeded conditional
Annotation search: add support for sub-annotation search

This commit adds a new checkbox to the right of each annotation input field in
the search. It is named 'Include sub-annotations'. If checked, the search
result will not only contain entities directly annotated with the requested
annotation, but also transitively annotated ones. Listing these was possible
before by expanding annotation entities. However, this option will include those
results already on the first level.
Navigator: add button to annotate annotation to annotation filter node
Annotations: make interface cleaner for adding annotations

The method and variable names involved in adding annotations have been updated
to reflect that not only neurons can be annotated (e.g. rename annotate_neurons
to annotate_entities). Also the Django API changed from '/neuron/annotate' to
'/annotations/add'.
Annotations: make interface cleaner for removing annotations

The method and variable names involved in removing annotations have been
updated to reflect that not only neurons can be annotated. Also the Django
API changed from '/neuron/<ID>/annotation/<ID>/remove' to
'/annotations/<ID>/entity/<ID>/remove'.
Annotations: allow deletion of duplicate annotations

If an annotations has been linked multiple times to the same entity, one should
be able to delete it. This wasn't possible before and this commit fixes that. Of
course, linking an annotation to the same entity multiple times shouldn't happen
in the first place.
Annotations: clean-up back-end method for adding annotations

Respect the fact that not only neurons can be annotated. This also fixes a
problem that an annotation link was added multiple times when meta-annotations
were added. This resulted from re-using existing annotation links only when
annotations were linked to a neuron. This constraint has been removed and the
existence test now uses only user, relation and the IDs of the annotation and
the annotated entity (and not their classes).
Annotation search: make annotation expansions collapsible

When a link that could be expanded is clicked for the first time, it is
expanded. This commit adds functionality to collapse the sub-tree again
when the link is clicked a second time. For doing this, the data structure
for storing query results had to be changed. It is now a list of lists
where index 0 is used for the main query and one index is used for each
expansion. A stored sub-query result is removed again when its tree gets
collapsed.
Annotations: fix bug that caused unwanted deletions of annotations

The method used by the skeleton and joining and splitting to update annotations
was wrongly deleting *all* occurrences of the annotations that should be removed
from the target neuron. This commits constrains the deletion so that it refers
to the neuron of interest and the correct relation.
Annotation search: reset query result storage on every new query
Annotations: fix multiple annotation search logic

Using multiple annotations in the annotation search was broken in
recent commits. This commit fixes this by avoiding the use of
Django's Q objects. They behave differently than expected and are
not needed anymore.

Additionally, this commit changes how sub-annotations are handled.
They are now part of the correct filter.
Navigator: fix paging of annotations

This was broken due to the client-side co-annotation filtering. One thing is
left to do for the number display: If co-annotations are filtered, the wrong
number of displayed of objects is shown. This will be fixed in a separate
commit.
Navigator: paginate correctly when filtering co-annotations

To do this, the front end asks for nr-of-co-annotations more results than what
pagination would allow, because all co-annotations are removed when the response
is handled.
Skeleton merging: fix creation of unwanted annotations

The Shift-Z merge handler sent annotation objects instead of names to the
back-end. This commits fixes this to only send names.

Thanks to Albert!
Annotations: ensure correct order of auto-completion controls in dialog
Annotation search: add simple pagination

By default, 50 entries per page are shown. Expansions are currently not
paginated and can hit the maximum limit of 2000 results per query.
Navigator: add button and functionality to neuron node to delete neuron

Deletion of a neuron is only possible if a user is super-user or (s)he has
permissions on all treenodes on all skeletons modeling the neuron as well as on
all annotations linked to it. If this is the case, a neuron, it' skeletons and
treenodes, connectors, treenoded-class-instance-links and annotations are
removed.
Remove unused objects file
Fix error in SkeletonConnectivity.getSelectedSkeletons function.

Could use some work.