Big refactoring of code to separate knapsack algorithm from the task specific things
Finished refactoring
Fixed a typo
Fixed knapsack algorithm to calculate max value item distribution, not max weight
Removed unused methods
Removed unused imports
Clean up
Added tests