Added time reversal support, performance improved

Added support to reverse the ordering of a given temporal network
Added an edge function based on successor dictionary, which speeds up
downstram operations compared to checking for Contains() in the edge
lists