linting
add test for ctrl-c/interrupt handling
add test for -p/--path
add tests for import failure
bump version to 0.4: "100%" test coverage

There's still a few places where we don't actually see the test
coverage. This is mostly due to three reasons:
- in the 'main' test path, we need to figure out how to get the
  output tests to work w/ trapped output; these code paths are
  actually covered under the CLI paths
- the 'main' test path doesn't cover running under coverage or
  the debugger
- there are some uncovered branches in host_fake and unittest_fakes.

There are a couple of other places as well.