Refactored most algorithm code into being OOP
Merge branch 'master' of https://github.com/oferb/OpenTrains