Speedup for adjoint Linear GS

1. Speedup for adjoint Linear GS (the dreaded double loop now uses the graph to only call applyJ on successors.
2. Fixed an issue that caused missing edges of an outgoing connection to a subdriver in a system's reduced graph when it is collapsed.