Fix duration "as" getters

An year was converted to 12 months and a month is 30 days, so a year was 3 days. Fixed that by taking into account full years when computing milliseconds since unix epoch and fixing duration.asMonth to convert back a year to 12 months.

Fixes #542.