Trait based inheritance

This is largely based upon #9 and #91, but fleshed out to make an actual inheritance proposal.
See [other comment](https://github.com/rust-lang/rfcs/pull/223#discussion_r17520792).