Package types should have a way of computing the intrinsic gas of a transaction.
API Idea:
func (tx *Transaction) IntrinsicGas(rules *params.Rules) uint64
This might also be useful for the data floor gas added in EIP-7623:
func (tx *Transaction) DataFloorGas(rules *params.Rules) uint64