Donate Refactor

Includes three new classes to discretely manage validation, the interface with Stripe, and messaging between components and the user.