Rewrite fileinput tests to use std::rt::io

These tests are being very flaky on the bots, and the reason is that files are
being created and then when attempted to get read they actually don't exist. I'm
not entirely sure why this is happening, but I also don't fully trust the
std::io implemention using @-boxes to close/flush/write files at the right time.

This moves the tests to using std::rt::io which is hopefully more robust and
something that we can actually reason about. Sadly, due to #8810, these tests
fail on windows, so they're all ignored on windows right now.
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