Finalize display of intermediate model results.
Finalize display of intermediate model results.

This is yet another breaking change on the search results API. This
is more substantial than the last. This structure is meant to be
generalizable to other model computations that don't share the limitations
of a pairwise logistic regression model.

1. Instead of calling the intermediate computations "feature_cmp_info,"
   call them "intermediate_model_results."
2. Change the corresponding value to a list instead of an object. This
   reflects the possibility that non-corresponding features are compared.
3. Each item in the list is a 6 tuple with the following keys:
     - kernel: the name of the kernel used to compare feature vectors.
     - kernel_value: the output of running the kernel on the feature vectors.
     - feature1: the first feature vector in the pairwise comparison
     - feature2: the second feature vector in the pairwise comparison
     - weight: the significance of this feature vector comparison. this is
               fixed for all equivalent feature vector comparisons in
               a single search.
     - common_feature_values: intersection of values in the pair of feature vectors.

This is a strictly more general model than what dossier.models currently
returns. For example, "kernel" is always "cosine" and "kernel_value" is
always a cosine similarity.

[breaking-change]

dossier/dossier.models,dossier/dossier.models,dossier/dossier.models,dossier/dossier.models