Rewrite snapshot.deep_clone to handle cloning the appropriate node roles.
Our "natural key" for snapshot was too restrictive.

You can quite easily have two entries on the table what have the same
name and deployment ID.  All you have to do is add a node to the
default deployment.
Just use Deployment.first.
Get rid of snapshot sanity checking.

It is replaced by deep_clone doing the Right Thing, and having
snapshots have the same name and description as their parent
deployments by default.
Add the state machine stuff to NodeRole
Merge pull request #606 from VictorLowther/pull-req-master-d707212ffea372a28f7384d2f7e99a8efeeb13a1

https://github.com/crowbar/barclamp-crowbar/pull/606

Merged by devtool for cloudedge