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
    }
This can still overflow, so the mention of when `None` is returned should be maintained/updated.