Only CModels could have explicit props, even though any of CModelAbstract* can have a parent. This was inconsistent, a bit weird, and rather annoying if we ever want other types besides CModel to have props.
This moves that capability up the chain, and separates the "selection box" out of CModelAbstract for clarity.
TODO:
- Figure out a better name for CModelAbstract
- Figure out if there's not a composability pattern that could work somewhere. RenderableObject is really doing too much.
- Check if the deduplicated code is deduplicated correctly
- Figure out if the "parent-relative-transform" shouldn't just be the default.
- Figure out how CUnit plays into all this.