Deactivate redefined graphnodes

1. Graphanodes that are redefined should be inactive
2. Check for graphnode redefinition in the same scope

a = b+ c; // <- mark this as inactive because it has already been redefined in the 2nd statement
a = Point.ByCoords(1,2,3)

@lukechurch @ke-yu 

There are existing tests for this but I need to write a more complex testcase to simulate this failure such as the scenarios in: http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-4642
For example in Dynamo+Revit

Stmt1
a= Revit.Elements.ElementSelector.ByUniqueId("207336e8-3756-46a4-9fab-04507a71f6ee-000077ef", true);

Re-exec Stmt1
a= Revit.Elements.ElementSelector.ByUniqueId("207336e8-3756-46a4-9fab-04507a71f6ee-0000799d", true);

Need to write a test to make sure re-executing statement 1 has no unintended update or GC issues



foreach?