Fix humanize

Fix for #1620

There are a few things going on here

- [x] Create accurate duration object given two dates (extracting months and milliseconds)
- [x] More accurate bubbling of milliseconds to months (taking into account days-per-year and leap years)
- [x] relativeTime now works with duration objects instead of mere milliseconds
- [x] fix broken tests -- oh well, hopefully wouldn't break anybody's flow
- [x] rebase on top of #1663

@icambron maybe a careful code review, I'll fix the tests at some point in the future.