Fix checkbox inconsistency: label [ ] -> [ ] label

This commit fixes some checkboxes that had their label to the left to add some consistency.

While at it, I also added label tags, so the labels can be clicked to (de)activate their checkboxes/radios.

Checkboxes concerned:
"Display reference lines" in Navigator
"RGB slices" in crop tool
4 checkboxes in classification editor
Selection Table: reorder colors.

Full blue appears now in place of the light blue.
Red has been pushed further down--generally interferes with presynaptic sites.
Added documentation to tilelayer.js, detailing when and why tile URLS are updated.
tilelayer.js: do not fetch too many image tiles when at scale -1, -2.
tilelayer.js: fix excessive image loading upon resizing the canvas.

Before, too many tiles loaded. One needed to zoom out and then zoom in
to trigger the code that corrected the URLs to a black gif when falling
completely off the field of view.
Fixes to documentation of Arbor.js
Javascript implementation of synapse clustering, using a partition-based
tree traversal approach that cuts down computational time enormously
compared to the ~O(n^3) graph-based approach currently implemented
in the server side in python + scipy.
synapse clustering: implemented Casey's density hill map, that computes
the clusters synapses fall into when using a specific bandwidth parameter.

The UI is not yet completed.
Added functions to retrieve lists of treenode IDs representing synapse clusters.
Created Colorizer as a util. Copied from SelectionTable.
SelectionTable uses Colorizer in utils.
WebGLApplication: synapse-clustering as a synapse coloring mode.

Uses a bandwidth parameter, in nanometers, specified in the options.
Added opacity field to SkeletonModel.
Default synapse clustering value at 5000 nm in the WebGLApplication.
3D viewer: attach listeners after initialization

The CLOSE and RESIZE listeners are now attached to the 3D viewer window
after the window and the 3d canvas have been initialized. This prevents
a call to the 3D viewers init() method by the resize handler which
doesn't know and pass the 3D viewer's canvas ID to initialization
method. Moreover, it caused the 3D viewer to be initialized twice. So
maybe this also fixes the 3D viewer destruction issues. Due to the
first initialization before, the canvas element was added to a more or
less random position (the canvas' ID wasn't passed!) so it ended up
in the first project menu entry (because it was the first match).
3D viewer: cancel resize if not initialized

This return replaces the call to init() in case of a missing
initialization. The call to init() wasn't correct, because the
canvas ID was missing. Since this is not known in the resizeView()
method before init() was called with the proper ID, a call to
init() isn't possible in resizeView(). Therefore, this commit
makes the method abort if not initialized---this case shouldn't
happen in the first place.
3D viewer: prevent double initialization

The commits before fixed a problem that caused a double initialization.
This commit makes sure it won't happen again by having a member variable
that indicates whether the viewer object has been initialized already.
Initialization will abort if this variable is already set to true.
Merge pull request #636 from fzadow/fix-checkboxes

Fix checkbox inconsistency: label [ ] -> [ ] label
Make sure every window object is closed only once in bulk close

When all windows are closed in one go, it could happen that close() is
executed twice on a window object. That is because all windows to close
are fetched into an array and closed one after each other, but closing
one window can implicitly cause the closing of others (e.g. when a
project is destroyed). This causes some problem with the listeners of
each window's CLOSE event. Therefore, this commit introduces a small
fix to make sure each window is only closed once. This is done by
retrieving the list of open windows after closing instead of walking an
up-front created list.

This fixes issue #635 which prevented the display of CATMAID's
front-page when the "Home" link was clicked and at least one non-stack
widget was opened.
Arbor clustering: perform less operations for the same effect.