The idea of active dependency graph is to allow it to write evaluated
data back to original datablock. This will simplify porting tools to
a copy-on-write concept. Basically, reading all "scalar" values can
be done from original datablock (for example, object location, bone
matrix). Those values will have animation and drivers applied on them.
Reading such evaluated data as mesh with all modifiers applied must
be explicitly done by reading from evaluated version of datablock.
There is likely missing bits of synchronization still, main focus for
now was to verify duplication of object works fine.