Typeck: Disallow scalar casts to bare_fn.

Bare functions are another example of a scalar but non-numeric
type (like char) that should be handled separately in casts.
This disallows expressions like `0 as extern "Rust" fn() -> int;`.

It might be advantageous to allow casts between bare functions
and raw pointers in unsafe code in the future, to pass function
pointers between Rust and C.

Closes #8728
Fix path parsing
Remove resolve's xray infrastructure

Since the removal of privacy from resolve, this flag is no longer necessary to
get the test runner working. All of the privacy checks are bypassed by a special
item attribute in the privacy visitor.

Closes #4947
Move std::rt::io to std::io
auto merge of #10439 : brson/rust/rmcxx, r=bstrie
Improve error message for breaks in blocks

Before it was always stated that it was a "break outside of a loop" when you
could very well be in a loop, but just in a block instead.

Closes #3064
Remove type overflow checks from check_const.rs, refs #4220

The checks are now handled by the linter
Check inferred integer literals for overflows, closes #4220
auto merge of #10423 : alexcrichton/rust/move-io, r=pcwalton

I still plan on reorganizing the internals of the IO module a bit, but this is the major move which has been on the horizon for awhile.
Make a time test less flaky

This test was failing periodically on windows and other platforms, and in
debugging the issue locally I've found that the previous test was failing
at the assertion `ns0 <= ns1`. Upon inspecting the values, the two numbers were
very close to one another, but off by a little bit.

I believe that this is because `precise_time_s` goes from `u64` -> `f64` and
then we go again back to `u64` for the assertion. This conversion is a lossy one
that's not always guaranteed to succeed, so instead I've changed the test to
only compare against u64 instances.
auto merge of #10427 : alexcrichton/rust/no-xray, r=brson

Just a few triage issues that I ran into.
doc: CSS: fix code fonts

Closes #10330.
Fixed xfail for nbody shootout benchmark by correcting command line parse.
Cleaned up unneeded imports and type changes to resolve compiler warnings.
auto merge of #10410 : willingc/rust/shoot-done, r=huonw

...e.

Cleaned up unneeded imports and type changes to resolve compiler warnings.

Work in process
rustpkg: Eliminate the spurious `os::path_exists(&pkg_src.start_dir.join(p))` assertion failure

This addresses the problem reported in #10253 and possibly elsewhere.

Closes #10253
auto merge of #10342 : catamorphism/rust/rustpkg-dir-checking-and-monitor, r=erickt

r? @brson
io: benchmarks for creation of the various Buffered objects
auto merge of #10441 : cmr/rust/bench_bufferedstream, r=alexcrichton

https://github.com/mozilla/rust/pull/10424 did optimizations without adding a
way to measure their effect and ensure no regressions. This fixes that.
Add build_lib_with_cfgs, build_bin_with_cfgs to rustpkg API. Closes #9944.
doc: disable parser error highlighting + a few fixes

CodeMirror parser errors are related to #9873.