Add allocation macros (per platform) and ARM cache flush

If MP_PLAT_ALLOC_EXEC isn't defined, it will fall back to m_new and m_del.
All tests for unix x64 pass.

Fixes issue #840
Out of curiosity, why is your preference to have all return values in the args, and not return one of them as the return value of the function (most sensibly here the ptr to the allocated memory)?