Add a command to modify node hw_info data

If users need to move, e.g., a network card from one system to another, they
need to tell Razor that that is happening. To facilitate this, we need a
command that lets users selectively remove, add, or modify entries in the
nodes hw_info table.

This implements that, as a single atomic "set hw_info to" operation.  In cases
where partial change is desired, this can be implemented by modifying the data
read from the server -- since there is, in essence, only administrative change
performed to this data, we have no significant edit conflict risk.

https://tickets.puppetlabs.com/browse/RAZOR-69
Signed-off-by: Daniel Pittman <daniel@rimspace.net>
Documentation: Updating API.md and `create-task`
Documentation: Matcher has `upper` and `lower`
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.