func (me *Individual) cloneEmpty() *Individual {
	return &Individual{make([]bool, len(me.genome)), me.generator, me.fitness}
}
cloneEmpty clones an Individual, but leaves the genome initialized
to the zero values.
package genomego
import (
	"fmt"
)
type Generator interface {
	Float64() float64
	Intn(int) int
}
type Individual struct {
	genome    []bool
	generator Generator
	fitness   float64
}
func NewIndividual(size int, generator Generator) *Individual {
	ind := Individual{genome: make([]bool, size), generator: generator}
	ind.genome = make([]bool, size)
	for i := range ind.genome {
		ind.genome[i] = (generator.Float64() < 0.5)
	}
	return &ind
}
func (me *Individual) Clone() *Individual {
	them := me.cloneEmpty()
	copy(them.genome, me.genome)
	return them
}
func (me *Individual) Size() int {
	return len(me.genome)
}