Convert probability vector to array of arrays

This commit speeds up generate_sample() by 20% to 160% percent,
depending on source material and platform.

Originally, the probability vector for any given state was stored as a
hash that mapped the next state to the number of times that state was
seen. This is great for adding new samples, but iterating over a hash
can be slow.

To fix this, two new methods were added: join_prob() and split_prob().
The latter is used to re-create the original hash from two arrays, while
the former is used to create the two arays from the original hash.

add_sample() calls join_prob() if the probability it is updating is not
a hash reference, and sample_next_state() calls split_prob() if it sees
a non-array ref probability. This allows everything to work as it did
before, but now sample_next_state() iterates over an array instead of a
hash.

In the common case of adding many samples then generating many samples,
this is significantly faster than the old code.
Add split_all_prob() method

To slightly accelerate (~5%-ish) the common case of never adding new
sample state after the initial batch, the split_all_prob() method will
pre-split all the probability hashes so that the sample_next_state()
method can run without any conversion overhead.
Call split_all_prob() at end of add_files()

This should make the common case (add all data, then generate all data)
faster.
Bump $VERSION to 0.006