Do not be silent if a layer goes missing

When we run some test layers in a subprocess (e.g. when you use
zope-testrunner -j2), each subprocess crawls the --test-path to find the
tests again.

If the --test-path is a relative pathname, and the parent process
changes the working directory during the test run, this will cause the
child process to fail to find the tests.  That is an error, and it
shouldn't be silently ignored.

This change needs automated tests!  I only tested it manually (and my
working directory has other uncommitted changes).
Fix subprocess execution when tests change the working directory

Fixes issue #6.

Note that most people use zope.testrunner via zc.buildout and
zc.recipe.testrunner.  That recipe changes the wrapper script to do two
things:

  sys.argv[0] = os.path.abspath(sys.argv[0])
  os.chdir('/top/of/the/source/tree')

which are exactly what is needed to make test runner subprocesses work
correctly.

Now the standalone zope-testrunner script (what you get when you pip
install zope.testrunner) will do that by itself, and people who use tox
or travis-ci will not be sad.

Note: this change needs unit tests -- I only tested it manually.
Test for missing layer error reporting
Fix subprocess error reporting on Python 3

Experience shows that subprocess.Popen().stderr.read() returns bytes,
not strings.
Show command line when subprocess fails
Add regression test for issue #6
Clean up after the cwd tests

Lack of this breaks the cprofile test.  (Unless bin/test does the
chdir/abspath combination to work around this.)
Merge pull request #7 from zopefoundation/fix-issue-6

Fix issue 6