Added some additional constructors.  Allows each transition to specify
whether it should be treated as an XTraceProcess or not - ie. whether to
add an edge from the transition event to the previous transition event.

If the instigation of a transition will always end in another transition
(ie. Running -> Failed, or Running -> Success) then we should log it as
a process.  

If the instigation of a transition is just administrative (ie.
Initialization, or Status Update) then we do not log as a process.

This commit will be followed up by modifications of each of the Hadoop
state machines on a case by case basis, to determine whether transitions
are processes or not.
Never treat any RMNode transitions as X-Trace processes.
Added methods to remember and join contexts in Task.  The AppMaster
remembers a task by putting it in a map.  The task gets started in the
child container, and the container requests the task through the
TaskUmbilical.  Need to save contexts and join them when we put/get the
task in the map.

In addition, added a few logging statements in choice places in Task.
Join event context when handling the event.
Just join the event's context in the event processor runnable, rather
than the roundabout way of saving and reloading the contexts.
Added some instrumentation for a few loops
Modified the state machine transitions that are logged as xtrace
processes for the ContainerImpl state machine.
Container requests to the RM now remember their own individual XTrace
contexts.
Most LocalizedResource transitions should not be X-Trace processes. 
Only DOWNLOADING -> LOCALIZED should be logged as a process.
When it comes to storing metadata for X-Trace processes, ignore
transitions
that
don't
change
the state machine to a new
state.
Had accidentally removed the start state name from log messages.
reinstated.
ContainerImpl needs to aggregate xtrace contexts for resources as they
are localizing, then restore all contexts after the final resource has
been localized.
When cleaning up resources, trace them as synchronous events
Instrumented around a for-loop
TaskImpl and subclasses are simple and their state machines don't need
to be XTraceProcesses.
In conjunction with a modification to the X-Trace API, implemented a
mechanism to allow Java child processes to re-link back to their parent
processes after they terminate.
Instrumented YarnChild and MRAppMaster so that they restore the parent
process contexts when they finish.
Added more options for State machine logging
Missed a logging branch
RMNode state machine should never propagate metadata