libstd’s Duration refactor

This commit changes the internal representation of Duration from

    pub struct Duraion {
        secs: i64,
        nanos: i32
    }

to

    pub struct Duration {
        millis: i64, // Milliseconds
        nanos:  i32, // Nanoseconds, |nanos| < NANOS_PER_MILLI
    }
`is_digit` includes non-ASCII digit sequences like ٠١٢٣٤٥٦٧٨٩ and ߀߁߂߃߄߅߆߇߈߉.