Implemented and tested Permutation

This will be used for several algorithms related to graphs:
Graph isomorphism, canonisation and symmetry detection but also
graph enumeration.