Basic thread-safety support using slim reader-writer locks. Interlock for Dispose().
Bugfix: dependency graph must be constructed prior to setting any values so that lazy writes can work.