Cargo & general updates.

This allows html5ever to be built via cargo and via the makefiles. Currently `cargo build` and `cargo doc` work fine, but `cargo test` doesn't:

- all tests have to be `#[test]`s at the moment (https://github.com/rust-lang/cargo/issues/431)
- as you know, building the tests/examples is broken anyway (https://github.com/rust-lang/rust/issues/16643)
- there's not a reliably way for a test runner to reach into the submodule to build the tests (https://github.com/rust-lang/cargo/issues/433)

There was a pile of file movement to get it into a format that works most naturally with cargo, although, I didn't touch `bench` (even though it's not special directory in cargo, theoretically it would move under `tests`); and the more interesting benchmarking means there may be some form of `Makefile` desired still.

I don't know what version or authors you'd like listed; and I'm sort-of expecting this to just be a "get the ball rolling" PR, since I feel you may wish to prod and tweak (especially around what happens with the Makefile and benchmarking). I can drop the second commit if that's going too far into the future.

Fixes #27.
`.to_string` now uses the `Show` impl for a type, and thus this changed; it may not be the correct way you wish to handle this.