WIP: 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
As long as `Millisecond` is left as an integer would it make sense to just calculate all periods based on total milliseconds instead of days? Type max and min would take a hit but I think you'd run into less rounding errors due to Floats