librustc: Enforce privacy for static methods.

This starts moving a bunch of privacy checks into the privacy
checking phase and out of resolve.
libsyntax: Accept `static` instead of `const` for globals
libsyntax: Accept the new `[T, ..N]` style for vec.
libsyntax: Forbid `use` (and most other things) within `extern { ... }` blocks
libcore: Make a couple of constructors public. rs=testfixing
auto merge of #5442 : pcwalton/rust/extern-block-restriction, r=pcwalton

r? @graydon