Approval refactoring

* Added validation on the `ApprovalGroup#status`
* Fewer instance variables
* More simplified/unified code path for going from controller to mailer when approving