Add a viterbi decoder base class that viterbi decoder implementations can inherit from.
reorganizes viterbi decoder source so that each implementation resides in a separate file.