Add documentation and a couple more tests
Export only certain symbols from the top level package
Turn Job into a context manager

This also simplifies adding the "archive artifacts" step to the build
as the last step without the add_step() hackery.