Djsopnet: convert blocks/cores to coordinates

The extent information in blocks and cores is redundant and potentially
inconcistent given the block and core sizes in BlockInfo. Further,
blocks are most often used for index addressing. Instead, store index
coordinates in blocks and cores, computing pixel extents only when
needed using the dimensions in BlockInfo.

This must be split across two migrations because the coordinate/min/max
columns must be updated in a separate transation from being set
non-nullable (both forwards and backwards).

NOTE: views have not yet been updated for this change. Views will be
updated as needed since most views are defunct and will be removed.
Djsopnet: fix type (minor)
Djsopnet: move library assets

Bootstrap and Angular libraries were being picked up by Pipeline and
included in CATMAID. Move then libraries and assets to be consistent
with the static files organization structure in CATMAID. Do no yet
include these libraries in Pipeline, however.
Djsopnet: only have admin for config models
Djsopnet: fix too small stack ID input
Djsopnet: return null ID for missing objects

Do not return -1, which is a valid ID (though not in the default
sequence) for many models. Instead return null. In general the API
should indicate an object was not found with a status code, but this is
a temporary improvement to prevent attempting to fetch non-existent
objects from clients.
Scaffold CATSOP results browsing widget
Djsopnet: fix slice retrieval view
Catsop widget: basic slice table views

Retrieve and display slices for the block at the center of the active
stack view.
Catsop widget: double clicks moves stack to slice
Catsop widget: display image mask for active slice
Djsopnet: fix subpixel locations block retrieval
Catsop widget: color active slice with CSS blend

Note that the CATSOP layer CSS is in the same folder as the layer JS
file, since these files will have to be reorganized anyway when merging
with upstream static asset reorganization.
Djsopnet: fix conflict set retrieval view
Catsop widget: display conflicts for active slice
Djsopnet: serialize hashes as strings

Although 382aa6edfdcb521921a62f04b2c16a0bd09334f5 made hashes serialize
to JSON correctly, they were serialized as numerics. Javascript only
supports 53 bit integers (because of float mantissa), so the hashes were
losing significant digits. Instead cast to string when converting from
PostgreSQL IDs to hashes.
Catsop widget: list conflict slices

List conflict slices in the slices table and highlight the conflict
slice mask when hovering over it in the widget table. Note that slice
loading is now very slow, because while prefetching the conflict slice
sets in django caches them correctly, each conflict set lookup during
serialization still generates a query that is logged and printed by the
debug server.
Catsop widget: fix slice mask tiling when zoomed
Catsop widget: indicate slices in solution
Catsop layer: indicate slices in solution