Add a cpp flag that mallocs for empty

You would never want to use this in production, but it's really useful
for testing: The fact that empty values don't need to be freed is not
part of the spec, at least partly because sometimes they do (e.g. they
can be suspended, redirects to empty values, etc). This also ensures
we're not too dependent on the representation of empty as NULL.