Pretty significant refactoring
 - make sure the same class of objects is passed into `Registration.fromDb()`
 - fix bug in calculations
 - add some comments
 - add registrantTypeId in tests