Previously only derived meshed from "invisible" to renderer objects were freed,
which is nice but which could still potentially be a huge memory
waster.
The idea of this change is to get rid of as much derived meshes as possible.
Additionally, this change also makes it so no unneeded derived meshes will be
created during scene_update_for_newframe() invoked by the render pipeline.
Unfortunately, we can't get rid of all the derived meshes, because some of
them will actually be needed for such modifiers as boolean, shrinkwrap and
some other places. In order to deal with this, there's now special evaluation
flag which says "hey, whatever the case, derivedFinal is to be always created".
This is probably as good as we can do it with the current depsgraph.