Crossover minor improvement

Reviewed the crossover code, added comments, and moved a hardwired parameter, TOP_POP_SIZE, to hc_parameters and moses program option, --hc-crossover-pop-size.

TOP_POP_SIZE was 40, --hc-crossover-pop-size default value is 120, because TOP_POP_SIZE is used in 3 crossover functions, cross_top_{one,two,three}, and I felt it's better for the user to deal with the total number of candidates created by crossover (per iteration).

Also, I noticed that crossover occurs only amongst candidate of the same iteration. I'm wondering if that's optimal, wouldn't we crossover more diverse candidates if we were taking all deme so far? On the other hand I understand that by using only the candidates of the current iteration the crossover is more diverse across iterations.