smalloc: Allow data == NULL in Alloc, but only for size == 0.

This re-allows creating a NULL Buffer when there is no risk of dereferencing it in JS land.

It is required by the ref module, which has a NULL "pointer" constant and also can read an
arbitrary "pointer" (Buffer), NULL or otherwise, from memory.