Clean up validations and views

This PR moves most of the data validations into the Account, Charge, and Page objects. This is closer to where the data is being used/saved. It also allows me to cleanup the view handlers and make them a lot more readable. The only downside is that error messages are no longer distinct for missing vs empty parameters.