libsyntax: Remove `extern mod foo { ... }` from the language.
librustc: Make `self` and `static` into keywords
libsyntax: Tighten up expressions in patterns to only allow identifiers or literals (possibly with a minus).

This had very minimal fallout.
libstd: Fix merge fallout.
librustdoc: Remove old-style extern mods from rustdoc tests.
test: Fix broken benchmark test
core: Move unstable to unstable/mod.rs
core: Move locks, atomic rc to unstable::sync
core: Rename SharedMutableState to UnsafeAtomicRcBox
auto merge of #6417 : pcwalton/rust/exprs-in-patterns, r=pcwalton

r? @graydon
auto merge of #6387 : brson/rust/unstable, r=brson

r? @pcwalton

* Move `SharedMutableState`, `LittleLock`, and `Exclusive` from `core::unstable` to `core::unstable::sync`
* Modernize the `SharedMutableState` interface with methods
* Rename `SharedMutableState` to `UnsafeAtomicRcBox` to match `RcBox`.
Add BuiltinBounds to closure type: parse and handle subtyping,
but do not integrate with kindck etc (requires a snapshot first)