Add Population structure.

solver/hpga/population/population.go describes the Population data
type, which is backed by a heap. Members can be inserted as well as
randomly removed (for mutation) and selected (for crossover). The
Population structure also allows for selection, keeping the best 100 out
of 150 individuals. It does this via performing heapsort on the
underlying heap and then reversing it (which does not invalidate the
heap order property).