Single column discrepancy and dynamic max-mini optimizations for quickly finding the most parsimonious evolutionary trees