1131062 - propogate cancelation even when download exception occurs

Previously, if a metadata download task was canceled, nectar would still call
back after the download was finished and an exception would be raised since
SynchronizeWithPuppetForge would not be set up to accept the cancelation. This
would cause an exception, which would mark the already-canceled task as failed.
Exceptions related to downloading would triggered this cancel->failed behavior
as well.

The new behavior is to check if a download was canceled before raising an
exception. In this case, we mark the metadata download state as STATE_CANCELED
and continue. Later during report generation when the metadata and module
download states are coalesed into a single report, we set the canceled flag on
the report.  This lets platform handle the cancelation correctly.
I thought this as well, but COMPLETE_STATES is only used by the client plugin and not for task status. It reports the correct "Task Cancelled" status already if a sync is canceled in another terminal.