Automatically generate metadata for container types

Similarly as we do for primitives. We can use value passed through for_value. We could probably generate at least dimensions and structural types metadata.