Modified Date types to allow use of Float for definitive periods.

modified Types such that Year and Month are part of CalendarPeriod wrapp...ed around Int
Week, Day, Hour, Minute, Second are wrapped around Real to allow for both Int and Float types
Millisecond remained wrapped around Int
Ref Issue #9393
Really not jazzed about using `with_rounding` here. This is as core as you get in the Dates API, so slow downs here will effect pretty much every other dates operation. Unfortunately, `with_rounding` uses an anonymous function (see #1864) as well as a `try-catch` block internally, both adding performance hits. I think we'll have to rethink how to do this.