bugfix: internal nodes too can be gap-only
bugfix: internal nodes too can be gap-only

Sometimes the root node has an actual sequence, but other internal nodes
don't. So need to check every node, and split the tree around those. If
an internal node is to be removed, its subtrees are extracted from the
parent tree and promoted to trees on their own, whilst the parent tree
is minimized.

This code assumes that gap-only leaves have already been removed and
the tree accordingly minimized (this is done in
`GenomicAlignTree::restrict_between_alignment_positions`).

Ensembl/ensembl-compara,Ensembl/ensembl-compara,Ensembl/ensembl-compara,Ensembl/ensembl-compara,Ensembl/ensembl-compara,Ensembl/ensembl-compara,Ensembl/ensembl-compara,Ensembl/ensembl-compara