Fixing bug where some registraiton updates would cause UnauthorizedExceptions - leading to a redirect loop

Fixing logic for calculating registration.totalDue
 - extracted business logic out into its own class for cleanness and eventual unit testing