libstd’s Duration refactor

This commit changes the internal representation of Duration from

    pub struct Duraion {
        secs: i64,
        nanos: i32
    }

to

    /// An absolute amount of time, independent of time zones
    /// and calendars with tick precision. A single tick
    /// represents 100 nanoseconds.
    pub struct Duration(pub i64)

Closes #18166,#18416.