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.