When configARMV9_MTE_HEAP or configARMV9_MTE_STACK is enabled,
pvPortMalloc and pxPortInitialiseStack return pointers with non-zero
MTE tags in the top byte. The stack depth assertion in tasks.c and
the stack overflow checks in stack_macros.h compared tagged pointers
against untagged ones, causing spurious assertion failures.
Introduce portSTRIP_ADDRESS_TAG() macro:
- Default no-op in FreeRTOS.h (zero impact on non-MTE ports)
- ARM_AARCH64_ARMV9 portmacro.h defines it to mask bits [63:56]
Apply the macro in:
- tasks.c: prvInitialiseNewTask stack depth check (both pointers)
- stack_macros.h: both stack overflow detection variants