Refactor core to support step collections

+ tests
Change how CLI treats args

Better support for working with new support for step collections
Merge pull request #13 from tivac/multiple-steps

Multiple step collections, see #13 for example.