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