Ensure that malloc-ed memory cannot be refined into a subobject.

This is needed to ensure that freeing dynamically allocated memory is preserved
by memory refinements: free can only be used on entire objects. Moreover, the
permissions no longer account for whether an object has been malloc-ed. Instead,
each object in memory is annotated with a boolean.