We need os.setsid() and os.killpg() to be available to use these tests. Skip the tests on platforms that don't have them both.
The new coverage appears to provide some more information about the uncovered lines than previous versions.
When a subpackage is specified on the command line (e.g., `nosetests foo.bar`), it should pick up all the tests below the subpackage. The root of the problem came from how we resolved a filename for a package. We should really point to the package directory, instead of providing the path to the `__init__.py` file. Otherwise, we only end up attempting to select modules from the `__init__.py` instead of the whole tree underneath. We don't want to check for a path ending in `__init__.py` in `loadTestsFromModule()` because then we select the whole subtree of tests when `foo/bar/__init__.py` is specified when only tests in the __init__.py should be selected.
This would occur by running `nosetests --with-id` with a newer version of Python, and then run again with an older version of Python who doesn't recognize the pickle format. In this case, let's simply ignore the file, and move on allowing nosetests to overwrite it after gathering the data again.