Add SHA-2

Enhance std.digest.sha to support the SHA-2 algorithms.

The SHA-2 algorithms aren't quite as heavily optimized as the SHA-1 support (The SHA-2 implementations don't use SSE3 like SHA-1 (still) does. And no effort has been make to force inlining of bigEndianToNative on 64-bit data, which is only needed by SHA-2.) However, the more important thing is to have SHA-2 support in the first place. Further optimization can be done later by someone mare familiar with SSE than I am.

This addresses bugzilla [issue 12015](https://issues.dlang.org/show_bug.cgi?id=12015).