HPCC-8498 In roxiemem, check that pointer being linked/released is in th...

...e heap

Previously, linkRoxieRow and releaseRoxieRow would core when passed an
invalid pointer.

With this change, we treat any pointer that was not allocated in the Roxie
heap as (in effect) pointing to 'infinitely linked' data, which means we can
pass constant rows around without having to first clone them.

Moving the code out of the header has prevented gcc from inlining it, which
appears to make Roxie faster (probably because the code stays in the cache
more often). Replacing the NULL check with a test agains the range of the
Roxie heap has no significant performance impact.

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>