Use Try::Tiny instead of eval
Calculate jd from mjd

This used to be done the other way around, but this method reduces floating
point errors for mjd with neglible impact on jd.