state_names: vector of names of all observed states.
num_concealed_states: number of concealed states, generally equivalent to the number of examined states in the dataset.
shift_matrix: matrix of shifts, indicating in order:
starting state (typically the column in the transition matrix)
ending state (typically the row in the transition matrix)
associated rate indicator.
diff.conceal: Boolean stating if the concealed states should be different. E.g. that the transition rates for the concealed states are different from the transition rates for the examined states. Normally it should be FALSE in order to avoid having a huge number of parameters.