Fix --cover-min-percentage with --cover-branches

When using the `--cover-min-percentage` option, the regex responsible
for extracting the cover percentage fails due to extra columns in the
result text when the `--cover-branches` option is also specified.

Using an optional (and non-capturing) group within the regex, we can
recognize a match whether or not the extra columns are present. This
fixes #626.

Note: The two other lines modified in this commit have only had the
trailing whitespace on the line removed.
Fix --cover-min-percentage with single packages.

It turns out that coverage doesn't generate a TOTAL line when only one
package is being covered.  As a result, we'd fail to parse the output
and assert accordingly.  Fix this by first trying a multi-package
regexp, and fall back to a single package version if the multi-package
one fails.  Also added several tests to make sure this works with and
without --cover-branches.
do not use deprecated compiler module

At least in Python versions >= 2.6, fixes #115
make nose.util.isgenerator() work on Python 3

- True if either a generator expr or a generator function
- isgenerator() to use existing UnboundMethod workaround
Fix spelling option names in docstring

The cover-package option and environment variable name in the docstring
are spelled with a plural, whereas the actual names are not. Trying to
use the plural version results in a `nose.config.ConfigError`.
replace 'pep08' with 'PEP 8'
Update distribute_setup.py to a newer version.

It helps to resolve some issues when installing under Python 3.3 when
there is no distribute package already available.
Correctly detect the coverage module under Python 3.3.

Python 3.3 has namespace packages (PEP 420) and the coverage support
area is being picked up as one.  As a result, when trying to run tests,
the current infrastructure believes that coverage is installed when it's
not, leading to several test failures.  Let's do an additional check to
make sure we have the real coverage package installed.
Merge pull request #657 from jszakmeister/fix-coverage-detection-for-3.3

Correctly detect the coverage module under Python 3.3.
Merge pull request #656 from jszakmeister/update-distribute-setup

Update distribute_setup.py to a newer version.
Use sphinx PEP reference
Fix #627: require at least 2 cpus for TestConcurrentShared

Anything less, and the tests will run serially and fail the test.
Merge pull request #639 from jszakmeister/coverage-fixes

Fix --cover-min-percentage for both single and multiple packages
A slightly better fix for #627.

The first test should run fine, even if the number of processors is one.
That's because we explicitly tell multiprocess to use two process.
However, the second test asks multiprocess for the CPU count, and that's
where we run into a problem.  As a result, we'll only check the cpu
count in TestConcurrentSharedWithAutomaticProcessesCount.
Make test_multiprocessing.test_keyboardinterrupt much more reliable.

It turns out that even under Linux, start up times for subprocesses can
vary considerably.  As with most threading/multiprocess-based solutions,
sleep() proves to be an inadequate solution to knowing when to send a
signal to interrupt a waiting process.  We may end up sending the kill
signal before the child process is on the right statement, causing some
assertions to fail in our tests.

Instead, let's introduce the concept of a kill file in these tests.  The
kill file will be generated by the unit-under-test, and we'll wait for
them to show up.  This works much better since the kill file is created
just before the sleep() in the unit-under-test.  Once we detect the kill
file, then we can remove it, and fire off the signal.  Where I was
seeing random failures before, I no longer see them now.
Merge pull request #659 from jszakmeister/use-killfile-for-keyboardinterrupt-test

Make test_multiprocessing.test_keyboardinterrupt much more reliable.
Merge pull request #651 from zr40/patch-1

replace 'pep08' with 'PEP 8'
Merge pull request #650 from bwbaugh/cover-docstring

Fix spelling option names in docstring
Merge pull request #648 from kimscheibel/master

Do not use deprecated compiler module.
Fix docs describing the arguments of formatFailure and formatError

- emphasize that the error tuple has to be returned even if it is not
  modified.
- remove highly misleading note about returning the test arg.