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.

On Thu, Sep 18, 2014 at 02:15:26AM -0700, Liigo Zhuang wrote:
> `_` means "any (other) value/type omitting it's name here".

The key point is that `impl Trait for Foo { }` is very different from
applying an `impl Trait for .. { }` to Foo -- the latter walks down
recursively, applying a test to the parameter types, and the former
does not. `_` does not imply this recursive walk to me.