Revert to openbsd sha1, fix hash endianess, centralize conditional constexpr.

The cause of test failures in openbsd sha1 was the boost-based endianess test. The new sha1 broke on Windows builds for the same basic reason. I fixed the endianess test and incorporated it into the openbsd sha1 (and ripemd160).

The openbsd sha1 interface is more consistent with the others, so restored that implementation and verified all tests on Ubuntu and Windows 32/64.

This pull also centralizes Windows build conditionality to a new compat.h file.