sha256 x86_64 optimization v2

This is a revision of https://github.com/zfsonlinux/zfs/pull/2332

Currently, the optimization only applies to kernel space,
because I haven't figured out how to it properly in user space.

AVX2 is untested because I don't have such CPU.
So use it with you own discretion.
This is pre-existing code, but it could be tweaked to be slightly faster if "static" were changed to "static inline". This would make the compiler output more consistent with the hand written assembly, which avoids dealing with another stack frame.