There are three parts to this patch.
The first part adds a private lib that has a similar interface to cpu features
as the kernel has.
The second part is to complete the move of sha256 from userland to the kernel.
The third part is to add support for optimized assembly to sha256, and to use it when available.