Refactor WorldRenderer trait and associated spec. It is more convenient
that it holds a reference to the world internally, because
implementations may wish to refer to e.g. world dimensions.