Better 'is_permutation' implementation, tests

svn path=/trunk/boost/algorithm/; revision=84389