Fix: Change backing datastructure of graphs
- Replaces List with Dictionary with the node index being the key and the GraphNode (also containing the index) the value
- This dramatically speeds up the MatrixMarket string to graph transformation in MatrixMarketReader since adding edges and in particular nodes to the graph is much faster
- This is because the nodes are added to the graph as needes i.e. the graph searches for them in the existing node list and if not present adds them. This search is significant the larger the graph gets. This is also why the transformation of larger graphs took exponentially longer.