Cleaning up core crates dependencies on libextra

A key part of splitting, and therefore removing libextra (#8784) would be to remove other core crates' dependencies on it.

I've started off with libsyntax, which didn't even require anything from libextra.

When I went to go and cleanup librustc, I came across a few requirements, and I'm not sure how these should be handled. Some just don't seem like they need to be in their own crate:
- `extra::time`. My initial thought would be a `libtime`, but perhaps it could go in `libstd`?
- `extra::tempfile`. I think this should be part of `std::io::fs`, but I wanted to check first.
- `extra::enum_set`. I honestly have no idea where this would belong.

Any input on where those three should go?