Many engine changes, primarily around entity/component/resource registration