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
When possible, we should really use `assert.strictEqual`. I've been burned in the past when I was accidentally returning an array rather than a scalar and `assert.equal` did not throw any errors.