Reorganise directory structure more logically

* Client directory containing all the clients (Cases, Content, etc)
* Command directory for things that manipulate/relate to commands
* Model directory for model abstract classes and ModelFactory
Avoid @codeCoverageIgnore annotations
Add PrimitiveModel, return primitives from command