Add OFFLINE_NODE_WHEN_COMPLETE option

If a build job is requested with the "OFFLINE_NODE_WHEN_COMPLETE"
parameter set to a true value, then mark the node as temporarily
offline when the build is complete (regardless of the outcome).

This facilitates single-use slaves (or slaves that need cleanup
after their jobs).  "Temporarily offline" was chosen as the
most lightweight method of preventing new builds to facilitate
either performing an external cleanup action (which would then
online the existing node), or external deletion of the node.

To accomplish this, the NodeAvailabilityMonitor unlock call is
moved from the StartJobWorker gearman function out into the gearman
worker so that the lock is held during the entire run of the job
and further past the point where the StartJobWorker will set
the node offline.

Also, supply the name of the gearman worker (which includes the
node name) with the build data to the client.  This way the client
will know which worker performed the job, and whose node may need
to be manipulated if the offline flag is set.

Change-Id: I5cda75eb44b26ec58e5f03d0aa980af09ee023f6