App module tests and validation

- Added validation and tests for the app module
- Added app administrator functionality
- Added utilities for easily setting up add administrators for tests
You don't have to do it for this PR, but can you add a line-break after the util.asserFoo line? It makes the test slightly easier to read.