Verify setenforce is executable

Some images/distros do not install/use selinux. This small change will
verify that `setenforce` is executable and in the path before attempting
to run the command. This prevents the script from erroring and causing a
failed `cloud-init` run.

Change-Id: I42f802c7994b8d907f0cc4e3b1a38e6fd89dac0c
Ensure stack lock is released after stack-delete

Previously, stack locks would not be released after a stack-delete
because the stack ID was being passed to db_api.stack_lock_release() as
None.  To resolve this, pass the stack ID to the greenthread-linked
release function while it still exists.

Change-Id: I260c4c5512bd2069f134e9d6ac6ea07565e443b0
Closes-Bug: #1276336
Merge "Verify setenforce is executable"
Merge "Ensure stack lock is released after stack-delete"