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 
As the third parameter is always ``graphNode``, from my point of view, it'd better to move this ``PushSymbolAsDependentToGraphNode()`` to ``GraphNode`` class.