ENH: Added a new genetic algorithm tutorial predicting a convex hull

Merged username-removed-256065 requested to merge stly/ase:ga_convex_hull_tutorial into master

This new GA tutorial will show how to work with the RankFitnessPopulation and predict the convex hull for a binary metal slab.

Concomitant changes in this commit are a cleanup of handling the gaid, now candidates should be added with different functions depending of whether they have been added to the database before; add_unrelaxed_candidate or add_relaxed_candidate or add_more_relaxed_candidates if they have not been in the database before, add_relaxed_step, add_unrelaxed_step if they have been added before (most likely using add_unrelaxed_candidate)

slab_operators are operators for the GA that work on slabs, which the tutorial is about.

The tutorial uses the PhaseDiagram class, so a feature has been added to Phasediagram.plot so that you can choose to not plot all the points.