runs in time states*edges, not states**2 now

viterbi ~22x faster, forward/backward 400x faster on 508 state 1415 edge graph, though these numbers are somewhat meaningless as the speedup is sequence and hmm size dependent.