Trait based inheritance

This is largely based upon #9 and #91, but fleshed out to make an actual inheritance proposal.
No, I just think it should be implemented differently. I would prefer (as, again, this RFC we're commenting also proposes) to remove the blanket `impl<T: 'static> Any for T` impl (it's actually `AnyPrivate` but that's unimportant), and instead, whenever you write:

    struct Foo;

the compiler automatically derives:

    impl Any for Foo { ... }