add both versions of hmm to benchmark
fix state number spec
reimplement cython viterbi