Don't bother logging the job conf when the trace is started
Added a method to state machine to allow outsider callers to join up to
the previous state machine context.  This allows asynchronous observers,
such as people getting status reports, to hook up to the partial state
of the state machine.
Added instrumentation to the Job client to join up with the
XTraceContext of a job when the job is complete
Conflicts:
	hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Job.java
Make sure to join any parent processes for all times that system.exit is
called
Don't stringify exceptions, it breaks XTrace
A couple of additional log statements for YarnChild
Accidental redundant call to join parent process.
Put a 'Job finish' log statement in the monitorAndPrintJob method, since
that seems to be the most common method used in the job client to check
for progress updates.
Switched all uses of xtraceprocess to instead just save and join
contexts
Conflicts:
	hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/ProtobufRpcEngine.java
Why on earth did I hard code 2 reducers.... I'm an idiot.
Added job name and number of map/reduce tasks as XTrace tags
Switch the tagging of nummaps/numreds until the end of the job, when we
know the total number that were actually launched.  Logging before the
job simply logs the value of the parameter that the user passes in,
which the framework can actually completely ignore.
Don't let Jon near your code.  Ever.
Uncommitted change... looks OK to me