Removed unnecessary pygraphviz test
Moved most argument parsing to argparser.py

Removed #!/bin/bash from open_csv.py, as only the main
dependency_graph.py needs to be opened quickly
Refactored open_csv.py to use an object-oriented approach

open_csv.py used to simply create a list of lists. Each sublist was a
node and contained the node's attributes in a specific order.

I could have replaced this with a dict, but chose to create a Node class
for more clarity. This means I can address a node's attributes by name,
rather than by an unmemorable index.
Updated to be more legible

Following on from making nodes classes, edited dependency_graph.py to
use the new class-based node system instead of the previous list-based
one.

Split preparing nodes and edges into a separate function to drawing the
graph for clarity.

Added dependencies to README
    It seems that all Linux-based graph-drawing Python packages either
    have very little documentation, and thus are difficult to use, or
    use packages which are incompatible with Windows. For that reason I
    stayed with pygraphviz.

    Because I have separated the preparation of the graph from the
    drawing of the graph, I should be able to use another graphviz
    package in future - one which will be compatible with Windows.
Added functionality to cut out unlinked nodes

This is done using the -x flag and simply sets each node.linked
depending on whether the node is linked. node.visible is then set
depending on whether it is linked.

The reason for not simply using node.visible is because when specific
types of node are excluded this is what will be used - setting
node.linked is a little clearer
Fixed bug when finding non-existent nodes

Previously the find_node function would return the index of the last
node in the node list, which meant that nodes with links outside the
dataset would all be linked to the final node.

Fixed this by creating new nodes with type "Unknown" - these will be
able to be filtered in the next few versions by excluding nodes with
type "Unknown"