Upgraded last old-style class
Pass a list to check_call, not a string

Prevents Python trying to split the executable path. Looks like the previous
code was trying to do this, but failed because of a missing comma.
Added more epydoc types

These were added using a customised version of Rope. We run the unit-tests and
watch to see what the types actually are at runtime, and then insert any
missing type annotations.

This is the raw, unchecked, output from the script.
Manual fixes to auto-generated type information
Refactoring in sat.py to be more Pythonic
Fixed return value from injector.cli
Merged type annotations branch