Final version.  Cleaned up viterbi a little bit and added different types of HMMs