RFM: Added permute!, permute!! (renamed permute -> permutedims)

These functions apply a permutation to a vector (or strings, whatever) in place.  They're slower than simply writing `a[p]`, where `p` is a permutation, but are useful when memory is a concern.  In particular, I'm wanting to use a version of them for sorting DataFrames.

Also added `findnext`, and defined `findfirst` in terms of `findnext` (used by `permute!!`).

I could just put these in DataFrames, but thought they would be more generally useful.

Unfortunately, the names conflict with `permute`, which permutes the order of the dimensions of an array.  So either `permute` or `permute!{!}` should probably be renamed.   I don't really like the naming of `permute`, but it has historical precedence (and matlab users would be very confused if it changed...).

*Edit*: per the discussion below, permute was renamed to permutedims.