Opt-in builtin traits, take 2: default and negative impls.

The high-level idea is to add language features that simultaneously
achieve three goals:

1. move `Send` and `Share` out of the language entirely and into the
   standard library, providing mechanisms for end users to easily
   implement and use similar "marker" traits of their own devising;
2. make "normal" Rust types sendable and sharable by default, without
   the need for explicit opt-in; and,
3. continue to require "unsafe" Rust types (those that manipulate
   unsafe pointers or implement special abstractions) to "opt-in" to
   sendability and sharability with an unsafe declaration.

I think the motivation is via analogy with the `..` wildcard when matching fields of a struct: `..` stands for any set of values *except* for the ones listed explicitly, i.e.:

```
fn main() {
    struct S { x: i8, y: i8, z: i8 };
    let s = S { x: 1, y: 2, z: 3 };
    match s {
        S { x, .. } => println!("x: {}", x)
    }
}
```

Because of the precedent illustrated above, I think `..` denotes well the notions that 

  1. many implementations are being introduced by this `impl`, and
  2. there may be exceptions to this `impl`.