Remove unused Django stores
Read feature weights from segment store

Have SolutionGuarantor read feature weights from the SegmentStore.
Features are segment-related data, so until there is a project/solution
configuration store this is the most reasonable location (and it can be
easily moved later). RVO is assumed for the getFeatureWeights method; if
it is not RVO'd it is a small vector and only called once per solution.

This requires that the database have FeatureInfo populated with weights.
See catsop/CATMAID@8dc5b52c06ff8f3b4264ecb57a7d8d7f701aa231 to populate
CATMAID with the default weights.
Prevent segfault when no solution is found

Prevent a segfault when the solver fails by throwing an exception. While
it is ambiguous whether the return value of a backend::solve indicates
failure to find any solution or failure to find an optimal solution,
this treats it as the former (and since the only backend, Gurobi, does
not fill in the solution for any status other than optimal). If the
latter is desired, the exception could instead check the length of
solution.
PostgreSql stores: index blocks by coordinates

Reflecting the change to block and core schema in
33ff2f6701cf7812e55cea517e7dfea4b4127e87, use index coordinates to find
blocks and cores. Remove the BlockUtils member from the stores and
argument from the utility methods as it is no longer needed to determine
block and core extents.
PostgreSqlSegmentStore: set core solutions flag

Set the solutions flag on a core when storing solutions. Also use a
single query when storing solutions (~10% improvement in performance).
Merge commit 'c003bad24c35514173a637edbee70ba485d962dd'

* commit 'c003bad24c35514173a637edbee70ba485d962dd':
  PostgreSqlSegmentStore: set core solutions flag
  PostgreSql stores: index blocks by coordinates
  Prevent segfault when no solution is found
  Read feature weights from segment store
  Remove unused Django stores