Clean-up of permute based shuffle implementation

 - Made details::perm independant of extension specific intrinsic
 - Simplified idnex computation to not requrie explicit specialization for
   cardinal 2-16
 - Amended altivec and ssse3 shuffle to use updated perm