Layout Inheritance

The main idea here came from [this issue](https://github.com/rust-lang/rust/issues/9912). Structs can inherit structs without subtyping; traits can inherit structs to force implementors to inherit them as well; match statements are used for downcasting; #9 fat objects gives thin pointers; some extra tweaks to make everything work together.

[Rendered](https://github.com/rpjohnst/rfcs/blob/layout-inheritance/active/0000-layout-inheritance.md)