Fixed up native shuffle opperations and added a command line option for choosing simd instruction set

I have yet to actually do anything with the new command line option, I intend to use it to
 chose software vs hardware implementations. This is the last thing I plan
on doing besides documentation and tests before gsoc is over.