Replace intrinsic ROTATE macros with an inline.

Without the cast/mask, the compiler is allowed to optimize this directly
to the correct CPU intrinsic for rotate.
Merge a patch that i successfully pushed to OpenSSL,
original OpenSSL commit message follows:

Fixed as shown; to be released post-1.0.2
commit bebbb11d132cc149f7713d6693703f8bfae10072
Author: Ingo Schwarze <schwarze@usta.de>
Date: Sat Jan 18 11:46:25 2014 +0100

RT3239: Extra comma in NAME lines of two manpages

In two OpenSSL manual pages, in the NAME section, the last word of the
name list is followed by a stray trailing comma. While this may seem
minor, it is worth fixing because it may confuse some makewhatis(8)
implementations.

While here, also add the missing word "size" to the one line
description in SSL_CTX_set_max_cert_list(3).

Reviewed by: Dr Stephen Henson <shenson@drh-consultancy.co.uk>
munmap correct object in (extremely unlikely, and effectively terminal)
case of failing to map the 2nd object.
found by Paul Maurers
fixed overrid(d)en typo

millert@ and jmc@ agree that "overriden" is wrong
XPG requires insque() and remque() to work with linear lists and not just
circular lists.  Amazingly, they managed to extend the requirements to no
longer match the behavior of the VAX instructions they were modeled after,
so the trivial VAX ASM versions have to go.  Nice job breaking it, X/Open!

Based on a diff from enh (at) google.com
ok miod@
getrandom(2) support for getentropy_linux

This enables support for the new getrandom(2) syscall in Linux 3.17.

If the call exists and fails, return a failure in getentropy(2) emulation as
well. This adds a EINTR check in case the urandom pool is not initialized.

Tested on Fedora Rawhide with 3.17rc0 and Ubuntu 14.04

ok deraadt@
use C rather than C++ array initialization syntax

this causes errors with stricter C compilers
only build the getrandom path if SYS_getrandom is defined.

like the sysctl path
replace sprintf/strdup with asprintf in engine test