Importable python_lib.zip assets

Lots of plumbing to allow an asset named python_lib.zip to be imported
by jailed Python code.

This function can find the "python_lib.zip" asset, and is passed down
through ModuleSystem and LoncapaSystem so that capa problems have access
to the zipfile.
Why the weird spacing around the colon? Wouldn't this be better as `lambda: get_python_lib_zip(contentstore, course_id)` ?