ctx.obj
Add typing to the `ctx.obj` object used to store pypeline-specific data while parsing the command-line in click.
Split the tests into two subdirectories: those that work in pure python and those that use the C++ bindings.