Add a pid attribute to all events.

Might be useful for coordinated_forks.
Add TB2::Event->copy_context

Because file, line and pid cannot be undefined, copying the context from
one event to another must be done with care.  This also helps if we
add more context later.

Will be used in a later commit.
Eliminate the create() hack in TB2::TestState.

Not sure why it was there, BUILD does it fine.
Fix t/Result/basics.t as_hash test for the new pid attribute.
Doc typo.
Fix TestState with coordinated_forks on at construction time.

The coordinated_forks trigger happens at build time, and there's no
event coordinator stack at that point.
Don't coordinate formatters.

Filehandles cannot reliably be frozen and thawed.  Formatters contain Streamers
which contain filehandles.  So we'll just not coordinate formatters.

I believe this is an acceptable limitation.  It's pretty rare you want to
change the formatter or output locations inside a coordinated fork.
Issue the test_start event automatically.

Most uses were of the form $self->test_start if !$history->in_test which made it
pointless.  However, a test_start event is still useful as pointed out by both
the TAP and POSIX formatters.  So the event is issued automatically by the
event coordinator.

This also solves a problem with forking.  If you fork before any events are seen,
the builder in each process will try to start the test.  Because fork coordination
is done inside TestState->post_event the builders don't know to check if somebody
else has started the test.  TestState is the only thing which knows about that.
By making starting the test the EventCoordiantor's problem, it neatly avoids
Builders having to know about fork coordination.
MyEventCollector isn't a History object.

EventCoordinator->post_event now makes use of the history object, so this
breaks code.

MyEventCollector could be fixed to act like History, but this branch
is big enough already.
Fix the test so it's possible to have the condition being tested for.

Because EC->post_event now automatically adds TestStart it's not possible
to produce the "TestEnd without TestStart" error from TB2::History we're
looking for.  So use TB2::History->accept_event directly.
Fix t/fork/events.t for 5.8.9.

Seems 5.8's wait doesn't wait for the whole process tree.  This
revision is better for all concerned.