Added self.domain to Permutation.

Now we can use an arbitrary set of keys as the domain. Still need to
fix a few methods, including from_string
I'm getting off track. Next step: Write tests for Permutation