Changed sat_invd:select/1 to use tournament selection.
Fixed issue with tournament selection.

Unnecessary to multiply the probability by its negation, as the event
correctly captures the measure p * (1 - p) by not choosing the previous
individual.

Rescales the probability to avoid over-choosing the worst individual.
The factor comes from solving (via Mathematica) the following
expression:

    Solve[a * Sum[p * (1 - p) ^ n, {n, 0, k - 1}] == 1, {a}]
Added generation number and age attributes to individual record.

Stores additional meta-data that could possibly be used to determine
the decision of whether or not to terminate the process.
Removed case for assigning seed as option.

This is done instead through the call to start/4 and init/1 because
randomness is likely used to initialize the genome.