Copy the Test::SharedFork tests.

We'll adapt them next commit.

For #334
Remove test file numbering.

Ordering generally doesn't matter other than "run first" and "run last".
With a subdirectory it really doesn't matter.

For #334
Convert t/fork/simple.t to Test::More.

* Added logic to check that fork works.
* Make use of d_pseudofork.  It was added in 5.10.0/5.8.9 so we
  still need the fallback logic for backwards compat.
* Removed a redundant counter from the test.  The for loops are
  going to run 20 times no matter what.

For #334
We're not going to have a fork method.

Redundant test with t/fork/simple.t if we're not going to have a
special fork method.

For #334
This threads test makes no sense.

Incomplete threads test from Test::SharedFork.  No need to hang onto
it, though testing forks + threads together would be useful.

For #334
Remove the Test::SharedFork store tests.

We're likely to do the storage interface differently.

For #334
Adapt the remaining Test::SharedFork tests.

They won't run, and I probably made mistakes, but its something to
start from.

For #334
A fork test just using events.

Cut things down to the bare bones.  Should be very useful for
development and debugging.

For #334
Implement an object to manage and lock files used for syncing.
The basic fork test runs, but they're totally out of sync.

Added TB2::SyncStore and the coordiante_forks option.

While the sync directories are the same, it looks like each process is
using its own file.  Possibly an overly lazy default.  Probably best
if the mapping of an object ID to a filename was deterministic, possibly
using a hash algorithm.

Checking this in because there's a lot of implementation here and
it's getting scary keeping this in my stash.
Fix plan() to accept multiple arguments.

use Test::More coordinate_forks => 1, tests => 43 was ignoring the "tests => 43" part.
Get forked tests working.

Made the process of determining where SyncStore will put the file deterministic.
So now each process will look in the same place for the file.
Subtests work, so make a test for a passing subtest and a failing one.
Fix t/fork/events.t to properly wait for its children.

Otherwise the parent goes and ends the test and checks the test state
before they're done.
Check the forked tests were successful, just in case.
Expose Test::Builder->coordinate_forks as a convenience method.
Fix up the fork tests which don't check for fork capability.
Test that a subtest entirely inside a fork works.

This requires that the subtest locks the parent state for its entire
operation.  Otherwise the subtest and parent output would interleave
and make no sense.
Fix a syntax error in t/fork/events.t
Fix a syntax error in t/fork/subtest_pass.t

has_fork comes from t/test.pl.  Have to load it in its own package to
avoid interfering with Test::More's exported functions.