Intercepting archive and publishing requests in tests

This adds a testing framework for intercepting requests to the remote archive and publishing services. It intercepts the requests and passes them to internally created versions of archive and publishing.

This change leads us towards be able to directly test the integration between the services. In short, that means that if a change happens over in cnx-publishing, you should see the effects of that change in cnx-authoring's tests.

I've put together a small sample of how this works in the [testing-in-practice branch](https://github.com/Connexions/cnx-authoring/tree/testing-in-practice). You'll see that it cuts theses tests in half. It is able to do this because the requests itself doesn't need to be mocked (which does not make external changes to the services immediately apparent) and expectations don't need to be hardcoded. Therefore, the test scope of cnx-authoring tests need only test itself.