Topological Sorting

I've added a working algorithm, implemented a strategy pattern for
sorting algorithms, and refactored Node.