Trait based inheritance

This is largely based upon #9 and #91, but fleshed out to make an actual inheritance proposal.
@huonw: I would assume you'd just access them via `self`, same like parent methods under trait inheritance.   I doubt that anyone who'd programmed in the last 20 years would be surprised.   Besides, if `Parent` fields have to be accessed via `super`, what happens with deeper hierarchies?   `self.super.super.super.super.field` ?

@glaebhoerl, can you please give an example of other implications of `strict Child: Parent`?