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
Macros can be everything: It's hard to return something in a function-like multiline macro
and this way every value has to be used somehow. If the *size parameter weren't used somehow, it could be that munmap in unix/alloc.c wouldn't unmap the last page, for example.