Trait based inheritance

This is largely based upon #9 and #91, but fleshed out to make an actual inheritance proposal.
Why `super` and not `struct Child: Parent`?   The latter would rhyme better with trait inheritance, IMHO.