Trait based inheritance

This is largely based upon #9 and #91, but fleshed out to make an actual inheritance proposal.
> Well... I already did. It would also force us to think about e.g. how to handle name shadowing of fields, which is a complication that doesn't currently exist. 

Don't we already have this problem with traits?  And it must have been resolved somehow, so we could do the same here.

> And the struct Child: Parent syntax would lead people to believe it also enables things like passing &Child where &Parent is expected, which is a whole other can of worms.

This RFC already allows for that, though requires an explicit cast.  Or am I reading it wrong?   Implicit casts would be a backwards-compatible addition, so they could be done later.

BTW, I totally agree with attributes being "too optional" to be part of a major language feature like this.