SG2 Spec: Stargaze Minter Factory Contracts

Common types needed for minter factories. New minter factories should extend these types to add their custom properties.

Every minter requires a factory that stores the minter's governance paramaters. A minter factory creates minters based on these paramaters.

For example, the vending minter factory needs a shuffle_fee. This is added as a custom extension to MinterParams and UpdateParamsMsg.

```rs pub struct VendingUpdateParamsExtension { pub shuffle_fee: Option, } pub type VendingUpdateParamsMsg = UpdateMinterParamsMsg;

pub struct ParamsExtension { pub shuffle_fee: Coin, } pub type VendingMinterParams = MinterParams; ```