Feature/cqrs refactor

This PR just separates out [commands and queries](http://martinfowler.com/bliki/CommandQuerySeparation.html) from services. We want to group reusable queries and services together. I think it's best to keep a strict separation between the two kinds of methods, hence the separate modules.