Use RLIMIT_STACK as the stack size for clone()

Call getrlimit(2) to retrieve the current stack size and allocate that
amount for the stack of child process.

As a consequence, set a default value for the stack size. Under some
situations, sudo will set the current stack size to unlimited (e.g., when
eunit is run, otherwise the stack size is the same as the shell).  It is
unlikely that the OS will allow an allocation of (1 << 63 - 1) bytes.

Use as the default, the default stack size for linux since clone(2)
is linux-only. The default stack size is defined in linux/resources.h
as _STK_LIM (8 Mb).

The caller can change the stack size by calling alcove:setrlimit/3,4.

For comparison, OpenBSD sets the default stack to 4Mb and FreeBSD sets
it to 512Mb (which probably explains why a fork path of a few hundred
processes caused a stack overflow).

Note the code still assumes the stack grows downward. clone(2) is a
pain that way. That'll be fixed in the future.