Refactor of viterbi_three to allow anomaly detection approach, plus added the simple_surprise.  NOTE that now viterbi 2 and 3 are so similar that they ought to be merged lest bug fixes get applied unevenly.