Fix graphnode dependencies

1. Implement a function that pushes symbols as graphnode dependents.
2. This function will check if symbols are valid dependents given certain conditions
3. Add new and update existing testcase

The existing bug: 
http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-4011 

was encountered when implementing: 
http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-4945

@ke-yu @lukechurch 
The reason for not moving it to GraphNode class is that the checks inside are specific to the codegen semantics. The graphnode should not know about temp property names.