Make debug!, etc. macros not require a format string

The one thing `log` can still do is polymorphically log anything,
but debug!, etc. require a format string. With this patch
you can equivalently write `debug!(foo)` or `debug!("%?", foo)`
core: Remove uses of DVec in io/repr
std: Remove uses of DVec
rustc: Remove uses of DVec
syntax: Remove uses of DVec
test: Removing dvec uses
core: Remove the dvec module
Fix dvec-related fallout in tests
auto merge of #5279 : alexcrichton/rust/no-dvec, r=pcwalton

Closes #4985 by removing the `dvec` module and all use cases throughout the compiler.

A number of uses were directly convertible to `let mut foo = ~[];`, while others in hash maps and some fields had to be converted to `@mut ~[T]`. A small number of `DVec` instances in fields were able to be converted directly to `~[T]` without the `@`, but this was a difficult thing to do.
rm obsolete iter-trait/option.rs file
auto merge of #5284 : thestinger/rust/iter-trait, r=brson

I missed this when I replaced iter-trait with a `BaseIter` impl.
auto merge of #5278 : brson/rust/logplusplus, r=brson

r?

`log` can  polymorphically log anything, but debug!, etc. requires a format string. With this patch you can equivalently write `debug!(foo)` or `debug!("%?", foo)`.

I'm doing this because I was trying to remove `log` (replacing it with nothing, at least temporarily), but there are a number of logging statements that just want to print an arbitrary value and don't care about the format string.

I'm not entirely convinced this is a good change, since it overloads the implementation of these macros and makes their usage slightly more nuanced.
implement BaseIter for dlist (removing iter-trait)

Closes #2827
auto merge of #5287 : thestinger/rust/iter-trait, r=pcwalton

Closes #2827
Finish de-implicit-selfing everything but the test suite
auto merge of #5290 : bstrie/rust/dis, r=pcwalton