Models, algorithms and programs for phylogeny reconciliation