Better dataset validation.

- Update calculation's rules.
- Update tests.
- Add validation feedback alerts.

Fixes #482 
sum and subtract seem to have the same logic and I'd rather use a multimethod for this (that is testable) than a case statement. wdyt?