core: Inline mallocing wrapper functions

As far as I can tell, this doesn't make rust compile any
faster, but it does at least remove one level of indirection
on malloc, which might help speed up some operations.
std: change Decoder::read_option to return a generic type

This allows read_option to be used with a custom option type instead
of just core::Option.
std: remove prettyprint

Everyone uses fmt!("%?", ...) instead of the prettyprint
module, so I'm removing this file.
core: add LinearMap::with_capacity
std: remove Encoder::emit_{owned,managed}_str and Decoder::read_{owned,managed}_str
std: remove Encoder::emit_{owned,managed} and Decoder::read_{owned,managed}
std: remove Encoder::emit_{owned,managed}_vec and Decoder::read_{owned,managed}_vec
std: remove Encoder::emit_tup{,_elt} and Decoder::read_tup{,_elt}
std: remove Encoder::read_rec and Decoder::emit_rec
core: add consume_reverse
std: add Encoder::emit_map and Decoder::read_map
Merge remote-tracking branch 'remotes/origin/incoming' into serial
std: fix json deserializing vectors and a test
Merge remote-tracking branch 'remotes/origin/incoming' into serial
Merge remote-tracking branch 'remotes/origin/incoming' into serial
std: add serialization support for dlist, linearset, triemap, trieset, treemap, and treeset
Merge remote-tracking branch 'remotes/origin/incoming' into serial
std: Add Deque::eachi and a Deque serializer support
auto merge of #5630 : erickt/rust/serial, r=pcwalton

@nikomatsakis and I were talking about how the serializers were a bit too complicated. None of the users of With the `emit_option` and `read_option` functions, the serializers are now moving more high level. This patch series continues that trend. I've removed support for emitting specific string and vec types, and added support for emitting mapping types.