std: rename Option::unwrap_or_default() to unwrap_or()
std: add default implementations to HashMap
std: add default implementations to Option
libsyntax: add Default implementation to OptVec
std: Add Option.{result_or_default,or_default} that uses Default
std: Add Default implementation for vecs
std: Add Option.unwrap_or_else and a couple tests
std: Add Option.{and,and_then,or,or_else}
std: fix a warning
std: Add ToOption/IntoOption/AsOption
std: Add ToResult/IntoResult/AsResult
std: Add ToEither/IntoEither/AsEither
std: Rename {Option,Result}::chain{,_err}* to {and_then,or_else}
std: Add a bunch of Default impls
syntax: add #[deriving(Default)] syntax extension
std: Remove Zero impl from vec

Vecs are not numeric types, so it doesn't make sense for them to
implement Zero.
std: Remove Zero impl for Option

Options are not numeric types, so it doesn't make sense for them to
implement Zero.
Document the Zero trait
std: Restore Option::chain{,_mut}_ref as and_then{,_mut}_ref
Stop using newtypes in rt::io::buffered

This is a workaround for #9155. Currently, any uses of BufferedStream
outside of libstd ICE.