Update to fix std::str::from_utf8{,_owned}.
Remove unnecessary parentheses.

These were all my fault and slipped in by accident when I was still learning
Rust. In Python I never put in such parentheses, but for a curly-brace language
I was still getting used to the freedom…
codegen: add Clone to deriving annotation for Status
Merge pull request #55 from olsonjeffery/status-clone

codegen: add Clone to deriving annotation for Status
Fix bad field name in request HeaderCollection.

--HG--
extra : rebase_source : 6805fa64348bdaa8051c83672f3b30163d5edcb5
Cause travis to make docs.

--HG--
extra : rebase_source : de73ed963c74508a08556badb2fa2eb8c82e7335
Change crate_types from lib to rlib + dylib.

--HG--
extra : rebase_source : 06b603a32cc244bfb94e2be5472b0211b49488c2
Str type tweaks for a smidgeon of efficiency.

--HG--
extra : rebase_source : d8453b60c24fed86120feb500817f91bbdce32f0
Remove "do" usage (removed from the language).
Minor 'Getting Started' readme update
Merge pull request #56 from dmac/readme-update

Minor 'Getting Started' readme update
std::fmt::Default → Show (mozilla/rust#11948).
Abstract `TcpStream::connect()` into a new trait.

This allows ``RequestWriter.connect`` to be implemented for more than
just ``TcpStream``—and hence ``read_response()``, ``write_headers()``
et al. There are two primary benefits that I can think of:

- It will make testing the client much simpler; full simulations of
  the TCP stream can be done without needing to actually make a TCP
  connection, by implementing ``Connecter`` for a custom type.

- Making SSL connections may be able to make use of this (this benefit
  is much more hypothetical—I’m not sure whether it will work out or
  not, because it’s a matter of return types).

On the other hand, this is normally going to kill type inference for
``RequestWriter``. That I plan on remedying with this new-fangled
default type parameter stuff (that is, with something like
``RequestWriter<S: Stream + Connecter = TcpStream``). That will mean
that other crates can just write ``RequestWriter`` for the moment,
which goes a fair way to fixing the situation.

(In the long run, we'll have a convenient API with functions like
``get()`` which will be fairly trivial wrappers but will use
``TcpStream`` [unless the SSL point works out well].)
Migrate codegen to new I/O results scheme, badly.

This is a nasty kludge and does *not* show the new scheme in its best
light! For the record, I like the changes, though in cases like this
they may be a pain. But I haven't worked at all to make it not a pain,
I've just patched it up a little. It's going to be being scrapped in
favour of macros once again, anyway. (Procedural macros! Yay!) That's
why I put no effort whatsoever into making nice LLVM codegen or even
vaguely pleasant code.
Adopt the new I/O error handling techniques.

There are a couple of comparatively unrelated changes where
significant change was already necessary and rewriting it became a
better way, such as with ``common::read_{decimal, hexadecimal}`` where
I have since the original coding become aware of the checked
arithmetic traits.

This is not a minimal diff, because I was trying a few other things
with it in the process and when I reverted things I reverted them to
how I would write them *now* rather than how I wrote them *then* (e.g.
``<R: Reader>`` instead of ``<T: Reader>``, ``'a`` instead of ``'r``).
Rust change: OwnedStr.{reserve_at_least → reserve}
Rust change: {std → collections}::treemap
Fix two unused result warnings.
Upstream: std::fmt::*{::fmt(&Self, …) → .fmt(…)}.
Fix race condition on mkdir in codegen

This is done by moving mkdir from codegen into the Makefile.