Fix error code for no update.

PayloadState does not get notified if there's no update, so the error
code will not be updated, move this to UpdateAttempter.

We were using the generic kError for no update, this change added a
new error code kNoUpdate for this, now update_engine_client will show
kNoUpdate instead of kSuccess or a random last error.

Bug: 36946608
Test: update_engine_client --check_for_update --follow
Change-Id: Ie1e94841788437140e0894dc2e73c314a7564108
diff --git a/metrics_utils.cc b/metrics_utils.cc
index 7e6b20f..f87828f 100644
--- a/metrics_utils.cc
+++ b/metrics_utils.cc
@@ -113,6 +113,7 @@
     case ErrorCode::kPostinstallPowerwashError:
     case ErrorCode::kUpdateCanceledByChannelChange:
     case ErrorCode::kOmahaRequestXMLHasEntityDecl:
+    case ErrorCode::kNoUpdate:
       return metrics::AttemptResult::kInternalError;
 
     // Special flags. These can't happen (we mask them out above) but
@@ -214,6 +215,7 @@
     case ErrorCode::kFilesystemVerifierError:
     case ErrorCode::kUserCanceled:
     case ErrorCode::kUpdatedButNotActive:
+    case ErrorCode::kNoUpdate:
       break;
 
     // Special flags. These can't happen (we mask them out above) but