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.
For performance purposes, it would be better to make this `static inline` for the above reasons.