Basic test architecture

Maybe add something to the Style/coding guide about tests?

Accidentally includes some commits from the other pull request I'm about to submit