Design discussion for permutations and discrete functions

This is about permutations, and more generally about functions between finite sets.

Desirable features:

Potential solutions:

- current one
  •       sage: p = Permutation([3,1,2])
          sage: p[0]
          3
          sage: p[0] = 1; p[1] = 3    # actually not implemented