AccountComponent::new() currently accepts storage and metadata without validating that they are consistent with each other (e.g., that the storage slots match what the metadata schema describes). We should add a consistency check so that invalid combinations are rejected at construction time. Originally commented on here.