Don't leak memory.
Switch the subA index type when we change alignment variability.
Empirical frequencies shouldn't depend on -t.
Make compare_caches( ) also check cached other_subst values.
Improve messages from compare_caches( ).
Reset other_subst to 1 for leaf  branches.
Rename branches_after( ) to branches_after_inclusive( ).

This should have no functional change.
Create new function branch_after( ), and use it.
Invalidate cached LC when alignment changes if subA_index_internal.
Mark subA_index_leaf caches as NOT carrying any collected probability.
Avoid counting a node twice in sample-alignment( ).
Simplify switchin the type of subA_index for variable_alignment().
Allow switching the subA index type from the command line.
Slightly improve printing of subA indices.
Fix peel_internal_branch( ) to handle both children being gaps.

Thus we have the following situation:

-   -
 \ /
  N
  |
  V

Previously we aborted in this situation, but we need to actually
HANDLE the situation to use a matrix of ones, instead of garbage.
Add a routine to compute the leaf branches of a connected subtree.
Fix type.
Add assert.
Make collect_internal_branch( ) return a value, and rename it.
New function get_other_subst_behind_branch( ).