Change how object sizes are recorded to better reflect reality

We now round up to the nearest multiple of 16 bytes. Therefore, a
20 byte allocation will be recorded as 32 bytes, as it actually uses in
the VM