Add option to revert a snapshot before a job gets executed on a VM Node

Squashed commit of the following:

commit 44d47cfcd9f4d80185fa66509941579e0d16b157
Author: Alex Szczuczko <alex@szc.ca>
Date:   Thu Aug 8 13:17:36 2013 -0400

    Add a note to the doc message about more than one executor on nodes with a pre-job snapshot.

commit dc5790374e93015960ad842d0f3482835048e435
Author: Alex Szczuczko <alex@szc.ca>
Date:   Thu Aug 8 13:10:31 2013 -0400

    Fix indent on beforeJobSnapshotName field in VirtualMachineSlave

commit c6d8239480ae3d0afffd85beb613ade07b0ee427
Author: Alex Szczuczko <alex@szc.ca>
Date:   Thu Aug 8 13:06:33 2013 -0400

    Restore VirtualMachineSlaveComputer imports to their state in master

commit 37aeae6125c2cfa871e38401d1aa7cce31d8182b
Author: Alex Szczuczko <alex@szc.ca>
Date:   Thu Aug 8 12:50:47 2013 -0400

    Add clean channel shutdown code to RunListener reverter

commit 32ca3ce036b71deac0e24f8de51ba2eb55ff23a9
Author: Alex Szczuczko <alex@szc.ca>
Date:   Wed Aug 7 14:26:55 2013 -0400

    Restore RunListener reverter

commit 1f0701d1529007cf52e54d36c713171cabbb82b9
Author: Alex Szczuczko <alex@szc.ca>
Date:   Wed Aug 7 14:26:48 2013 -0400

    Remove SlaveComputer reverter

commit 69fc1a46a48d8deb6218b0698a5aafe6adf30bc2
Author: Alex Szczuczko <alex@szc.ca>
Date:   Wed Aug 7 12:15:00 2013 -0400

    SlaveComputer based reverter

commit dbd843dea21903e02f74d75a98ee211f942f7781
Author: Alex Szczuczko <alex@szc.ca>
Date:   Wed Aug 7 10:49:46 2013 -0400

    Remove old revert classes

commit 651663290c392e4ec5af9f9e92fdb550ecc5245e
Author: Alex Szczuczko <alex@szc.ca>
Date:   Wed Aug 7 09:29:46 2013 -0400

    Add pre-launch snapshot revert executor, not quite what is needed.

commit 29a6ee952f686d557b99a54e211644b050df05ab
Author: Alex Szczuczko <alex@szc.ca>
Date:   Tue Aug 6 15:05:00 2013 -0400

    Fix logic bug

commit 43fd818683a0757533095818e8b889e99cd62d0d
Author: Alex Szczuczko <alex@szc.ca>
Date:   Tue Aug 6 12:45:22 2013 -0400

    Include beforeJobSnapshotName in snapshotName snapshots list refresh javascript.

commit 41935ef6e2166b0dbd6cef79eda0b46c7cc091e4
Author: Alex Szczuczko <alex@szc.ca>
Date:   Mon Jul 22 17:10:54 2013 -0400

    Add start of a snapshot revert-before-run configuration option and an executor for that option.
Add property to Job/Project configuration to allow per-job snapshot definitions.

A job level snapshot overrides a node level snapshot.

Squashed commit of the following:

commit 642c90fefe7af1dbac2f8e1d0bbf1611e89b18af
Author: Alex Szczuczko <alex@szc.ca>
Date:   Mon Aug 12 11:41:19 2013 -0400

    Polish snapshot job property

commit b77d59cd9bdb69a83ad703712e98b56f08efb9bc
Author: Alex Szczuczko <alex@szc.ca>
Date:   Fri Aug 9 15:24:43 2013 -0400

    Add JobProperty to hold per-job revert snapshot data.

commit 2e8d23d4a4407a3b3d9e97c8b9dd0e32f591abb2
Author: Alex Szczuczko <alex@szc.ca>
Date:   Fri Aug 9 15:15:04 2013 -0400

    Move jobBeforeJobSnapshotName init to increase clarity

commit 5c0034cf5b72460364410cfc0ab621086ffae90c
Author: Alex Szczuczko <alex@szc.ca>
Date:   Fri Aug 9 12:30:20 2013 -0400

    Fix generic types

commit 5767bb798e4f32af5b3ed6ec0564a7ba0308d428
Author: Alex Szczuczko <alex@szc.ca>
Date:   Fri Aug 9 10:13:55 2013 -0400

    Prepare LibvirtSnapshotRevertRunListener to accept more than one source of a snapshot name
Merge remote-tracking branch 'aSzc/aszc-revert_on_job_start_squashed' into omaster

Conflicts:
	src/main/java/hudson/plugins/libvirt/VirtualMachineSlave.java