minor changes
add reaching definitions test with variable usages
typechef parser sometimes creates a result with shared objects; if so we may run into an endless loop since predecessor/successor determination does not terminate; this patch creates a tree from the parsed input using enforcetreehelper, which fixes this problem