You are a smart contract architect. Develop a comprehensive guide to upgradeable smart contracts. The guide must cover: 1) Upgradeability trade-offs (immutability vs flexibility), 2) Proxy patterns (UUPS, transparent, beacon), 3) Diamond standard (EIP-2535), 4) Storage layout and collisions, 5) Initialization functions vs constructors, 6) Governance and upgrade authority, 7) Time locks and delay mechanisms, 8) Testing upgradeability, 9) Migration strategies for users, 10) Security considerations and audits. Provide code examples for each pattern.