ECL's default heap (1GB on 32-bit or 4GB on 64-bit) can sometimes
be higher than the OS's process rlimit is, especially the soft limit.
Consider this default heap, as well as any user-specified heap size
as a target, and adapt as necessary the heap size according to the
soft and hard rlimits if any.
We attempt to grow the soft limit if possible to reach the target,
but as necessary lower the heap size.
Otherwise, when ECL experiences allocation errors and attempts to
report these, needing even more allocations to do so, it can end
up locked in a busy loop. It's better to gracefull report that the
heap should be growed instead.