Faltaba un `break;' en un bucle

Después de hacer la asignación ya no hacía falta seguir en el bucle, y
estaba faltando el `break;' para salir.
Se cambia el límite de la población mínima

Ahora es 10, antes era 1, y trabajar con 1 individuo no tiene sentido.
Se reemplaza la aptitud -1 por la peor posible

A los individuos inválidos, que tienen aptitud -1, ahora se les asigna la
peor aptitud posible (para ser consecuente con la definición de la
aptitud). Esa asignación es un número con tantos 9 como cantidad de
dígitos tenga la aptitud del peor individuo no inválido.
Ej.: si la peor aptitud de un individuo no inválido es 4782, la aptitud
para los individuos inválidos será 9999.
Se implementa realizar varias corridas por ejecución

La nueva opción [-r|--corridas] permite especificar cuántas corridas del
AG se realizarán durante la ejecución del programa, por defecto es 1.
Entre corrida y corrida se hace una pausa de 1 segundo para que la
siguiente corrida no utilice los mismos números aleatorios que la
anterior.
Pasa de aptitud -1 a 9s al fin de cada generación

Así se utiliza como referencia la peor aptitud de toda la población, y
no solo la elegida en la cruza o mutación.
Se modifica lo que se muestra con la opción `-d'

Con un solo `-d' se mostraba mucha información, se modifica para que sea
más progresivo, desde `-d' hasta `-ddd'.
Se utiliza el algoritmo Mersenne Twister

Se reemplaza el uso de las funciones de biblioteca de C para la
generación de números aleatorios por una implementación del algoritmo
Mersenne Twister tomada de
http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/CODES/mt19937ar.c
Porcentajes de selección, cruza y mutación a elección

Se mejora la elección de los porcentajes de selección, cruza y mutación
con las opciones -e, -x y -t correspondientes.
Por defecto se toma 10 (selección), 80 (cruza) y 10 (mutación). Si se
especifica un porcentaje se deben especificar también los otros dos y la
suma de los 3 debe ser 100.