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)