Implement DeepClone for str types.
Implement Clone and DeepClone for time types.
Give XorShiftRng::new() a random seed

Fixes #8359.
auto merge of #8555 : chris-morgan/rust/time-clone, r=huonw

I need `Clone` for `Tm` for my latest work on [rust-http](https://github.com/chris-morgan/rust-http) (static typing for headers, and headers like `Date` are a time), so here it is.

@huonw recommended deriving DeepClone while I was at it.

I also had to implement `DeepClone` for `~str` to get a derived implementation of `DeepClone` for `Tm`; I did `@str` while I was at it, for consistency.
auto merge of #8558 : kballard/rust/xorshift-seed, r=cmr

Fixes #8359.
remove the Times trait in favour of `range`

It's not possible to break from `times` and it results in the
restrictions coming from closures. Using `for _ in range(0, n)` from the
start is simpler, rather than switching to it after hitting either of
these issues.