Add Stream.interval/1 and Stream.timer/1

Per discussion on https://groups.google.com/forum/#!topic/elixir-lang-core/lhvytBduo3Q

Tests here are interesting. Anything time based is always a pain to test. Open to suggestions.
Actually we do want that feature here, or at least that time does not decrease, as we know time has passed between calls, so the second must be greater than (or equal to) the first. That guarantee is not provided by `:os.timestamp/0`, the second call could return a time before the first call.

Also `:erlang.now/0` provides guarantees that the time between two of its calls is as near to real time as possible such that it won't be skewed by a change in system time assuming it is not called too often. Instead it will slowly converge by changing by 1%. This means it should provide a better time diff or at least be no worse in this case.

There is a common feeling/thing that people go around saying `:erlang.now/0` should be replaced by `:os.timestamp/0`. In the case of timing in a test like this it does not matter at all which is used and if being pedantic the change is using a less desirable function.

More information:
http://www.erlang.org/doc/apps/erts/time_correction.html