Migrate to a mostly rustpkg-driven buildsystem

Unfortunately rustpkg can't yet work with inlined tests, so
the tests are run with the Makefile-driven approach.
Take (mut ~self) instead of using `let mut mut_self = self;`
Use write!(...) instead of .write(format!(...)).
Make buffer closer to std::rt::io::buffered.

In a while, it will be replacing it (as functionality moved upstream),
but it isn't quite ready yet.
Improve and test server request line reading.
Update .hgignore to match .gitignore.
Add a rule to generate a TAGS file.
Add a rule for building docs with rustdoc.
Update ab benchmark figures. Concurrency one: win!

Scaling isn't going so well yet (Go scales really well, Node scales
poorly, we're scaling even more poorly), but being better than both
Node and Go on single concurrency is a great start.
Update to rust-master
Merge pull request #39 from am0d/rust-master

Update to rust-master
Replace `FromStr::from_str` usage with `from_str`.
Update wrk comparison benchmark and conclusions.
Merge branch 'master' of https://github.com/erickt/rust-http into rustpkg
Fix missing docs and tags targets
Merge pull request #40 from am0d/rustpkg

Rustpkg
Remove unused an miscategorised functionality from buffer.

It'll be coming back in better form soon, never fear.
Refactor code, improve invalid HTTP compatibility.

- Refactor common reading methods for more flexibility.
- Make a Request-URI with HTTP-Version and LF only, instead of CRLF,
  work (as recommended in RFC 2616).
Update some goals/design decisions in the README.
Update .hgignore to match .gitignore.