RUBY-1395 Make after_fork idempotent

This is important because with some 3rd-party Resque forking gems
(resque-multi-jobs-per-fork and resque-multi-job-forks), the after_fork hook
will fire multiple times per forked process, and we only want to re-create the
PipeService once.
RUBY-1395 Do not shutdown the agent after each Resque job

Instead, just flush any collected data on the pipe back to the parent process.
This is important because with 3rd-party Resque forking hacks like
resque-multi-job-forks and resque-jobs-per-fork, or when Resque is run with the
FORK_PER_JOB environment variable set to false, we will end up processing
multiple jobs in the same process, and we don't want to shutdown the agent after
the first one.
RUBY-1395 skip Resque before_fork hooks when ENV[FORK_PER_JOB] = false
RUBY-1395 Fix auto-restarting thread in after_fork

The changes to properly handle thread restarts for Resque inadvertantly
broke the restarting in more standard cases for transaction finishes
starting up a threads like we rely on for Unicorn.

To address this, we now have NewRelic::Agent::Agent#after_fork perform
locking around the harvester's mark_started check instead of Harvester
and dispense with the worker thread nil and alive? checks that were
making Harvester try to clear out the worker thread on a restart.

Conflicts:
	lib/new_relic/agent/agent.rb