Prevent Send, Freeze, and Sized from being manually implemented. Close #8517.
Allow traits to use builtin kinds as supertraits for #7083.
Add tests for #7083.
Add more capabilities to typarams bounded by traits with super-builtin-kinds. Close #7083.
Add tests for super-builtin-kind capabilities (#7083)
Fixup style of test cases for #7083
Allow the Self type to benefit from builtin-kinds-as-supertraits (#7083).
Add tests for self type using builtin kinds. (#7083)
auto merge of #8562 : bblum/rust/superkinds, r=nikomatsakis

For #7083.

The metadata issue with the old version is now fixed. Ready for review.

This is also not the full solution to #7083, because this is not supported yet:
```
trait Foo : Send { }

impl <T: Send> Foo for T { }

fn foo<T: Foo>(val: T, chan: std::comm::Chan<T>) {
    chan.send(val);
}
```

cc @nikomatsakis