MPC for the Real World: Improving Performance and Usability via Program Analysis, and Applications to Decentralized Finance