Move the metadata size into a base_dtype member

Saving this value instead of recomputing it via a virtual
function seems like a good idea.