viterbi: move metric calls out of public interface
SSE: Move random test sequence into measurement loop

Place the random sequence generation inside the measurement
loop instead of pre-generating all sequences in advance.
This adds the randomization into the measurement, but reduces
the number of page faults that tend to dominate and add
non-deterministic behaviour. In other words, we accept more
pessimistic measurements as tradeoff for more consistency.
SSE: Replace built in RNG with simpler-faster version

We have little real concern over random number properties. We
do care that values are refreshed (to maintain real-world cache
usage) and are sane (to prevent undefined and overflow conditions).
This reduces the overhead of the RNG used in timed test cases and
provides more accurate results.