Moved Step and RepeatedStep to general package

* Step and RepeatedStep could be used in different algorithms
* Added StepUtil to calculate total number of steps
* Refactored SPIP to work with these changes
Eliminated AlgorithmMonitor class