Improve entity/component system

Only allow one component of each type per entity.
Allow entities to be nested.