[dijkstra_sssp] Add Dijkstra's single source shortest paths algorithm
[dijkstra_sssp] Wrap return value in a namedtuple
[bellman_ford_sssp] Wrap return value in a namedtuple
[johnsons_apsp] Wrap return value in a namedtuple
[knapsack] Add dynamic programming algorithm for the Knapsack problem
[knapsack] Add method docstring, comments, plus improve readability a bit
[knapsack] Fix naming mistake; it's a stack, not a queue

KnapsackSolverWithCachingAndQueue is actually
KnapsackSolverWithCachingAndStack.
[knapsack] Rename Item.weight to Item.size; consistent with knapsack_size
[knapsack] Rename two variables and add a comment, for readability