Added a permute() method

I just added a permute() method which permutes the bits of a bitarray according to a permutation list p.  It returns a new bitarray instance b s.t. b[p[i]] = a[i].  This method accepts an optional keyword argument reverse, which does the inverse permutation: b[i] = a[p[i]].