Full test coverage and serious refactoring action.

* Make all Step methods public. Since this class is inherited by the user all methods should be stable and public methods are just easier to test
* Replace highline with custom CLI util.
* Adds newlines to EOFs
* Add rubocop + adequate config file
* Lots of refactoring and cleanup