Initial test and REST client framework

This PR contains a rough outline of:
 * the test framework
 * the REST client framework
 * linting
Does it make sense to pass a RESTClient in here? Can we not just get the global admin REST client here?