[WIP] Consistency (2)

This is a more invasive approach to making the codebase consistent. I have reorganised the namespaces to be around the functionality of the app rather than the type of class.

The theory is that when working on a feature, you are likely to need the Db, Api and Controller for (say) the User namespace which means that all the files you need are in a single directory.

Thoughts?