Reorganise and test std::time

std::time is now broken up into two modules:

1. std::time, which provides time related types.
2. std::time::duration, which provides the Duration type.

This separation allows for the use of module methods to construct a
Duration using different time units, instead of using methods defined on
Duration itself. This means that instead of this:

    import std::time::Duration

    Duration.from_seconds(5)

You now write this:

    import std::time::duration

    duration.from_seconds(5)

== Renaming MonotonicTime to Instant

MonotonicTime has been renamed to "Instant", which is a bit shorter and
much easier to type. A new method has been added as well: "elapsed".
This method can be used to measure the time that has elapsed since the
Instant was created.

== Adding and subtracting SystemTime and Instant

The methods + and - for SystemTime and Instant no longer accept a
ToFloat, instead they require a Duration. Accepting a ToFloat would
allow you to add a SystemTime to another SystemTime, or add an Instant
to an Instant. Neither make sense, so instead we now require the use of
a Duration. This means that instead of this:

    import std::time

    time.now + 5

You now have to write this:

    import std::time
    import std::time::duration

    time.now + duration.from_seconds(5)

== Tests

Finally, both std::time and std::time::duration have tests. These tests
uncovered a few bugs in the implementation of SystemTime, which have
been resolved.
14 jobs for master in 15 minutes and 11 seconds
Status Job ID Name Coverage
  Test
passed #138671965
lint:clippy

00:07:23

passed #138671966
lint:rustfmt

00:01:28

passed #138671967
lint:versions

00:00:39

passed #138671959
test:compiler:linux

00:02:12

passed #138671960
macos
test:compiler:macos

00:01:08

passed #138671961
test:ivm-nightly:linux

00:07:19

passed #138671963
macos
test:ivm-nightly:macos

00:06:22

passed #138671962
test:ivm-stable:linux

00:06:56

passed #138671964
macos
test:ivm-stable:macos

00:05:40

 
  Build
passed #138671968
build:ivm:linux

00:07:03

passed #138671969
macos
build:ivm:macos

00:05:18

 
  Test Runtime
passed #138671970
test:runtime:linux

00:00:44

passed #138671971
macos
test:runtime:macos

00:00:39

 
  External
passed continuous-integration/appveyor/branch