xalloc: allow x2nrealloc (P, PN, S) where P && !*PN

* lib/xalloc.h (x2nrealloc): Extend slightly, to allow the current
size to be zero even when the pointer is nonnull.  This
accommodates the use case where P is malloc (0) and *PN is 0 on a
host where malloc (0) yields nonnull.
expl: avoid incorrect expl(small_value) on OpenBSD 5.4

OpenBSD 5.4, expl() incorrectly returns 'nan' for small values.
Detect this and use gnulib's expl() in that case.

Discussed here:
http://marc.info/?t=139159081700002&r=1&w=2
(Message from David Coppa on 2014-02-05 to openbsd-tech mailing list).

Fixed here (in revision 1.2):
http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libm/src/ld128/s_floorl.c

* m4/expl.m4 (gl_FUNC_EXPL): Add a check for this condition.
* doc/posix-functions/expl.texi: Mention the workaround.
autoupdate