Pruning without removing nodes with single child that were already in tree

Hi Rutger,
The code for keep_tips() removes unwanted tips and goes the extra mile to also remove nodes that have a single child. In a case I had, my tree contained some nodes with single children, prior to pruning. I pruned some tips and my nodes with single child were removed, even though their child was not affected by the pruning operation. So, here is a pull request containing code to preserve nodes with single child that were already present in tree. The test suite was updated and all tests pass.
Cheers,
Florent