Delete unpacked iso on repo deletion

When issuing the `delete-repo` command, the unpacked repo was being left on the filesystem. This change cleans up this folder, if it exists.

Fixes https://tickets.puppetlabs.com/browse/RAZOR-202
Fix retry of commands

If a command failed for a retry-able reason, an item that could not be encoded into EDN was being placed on the queue since it contained a Command object. This fixes that by preserving the original command arguments for re-queuing.
Add 'cancelled' status to commands

This exposes a way for the user to cancel the command by adding the 'canceled' status for the command. If a command is in 'cancelled' status when it is pulled off the queue, it will be neither executed nor placed back on the queue to retry.
Add cancel-command command

Currently, if the user mistypes the URL for the ISO in a repo, that command will continue retrying. This command allows the user to transition a command instance into 'cancelled' status so it will not continue processing.

Fixes https://tickets.puppetlabs.com/browse/RAZOR-186.