Add precision parameter

`age_calc` can now return non-interger values when more precision is
required. Handles leap years properly.
New failing grades analysis started with up-to-date years.
Fix error that replaced all data with a date in error.