Enable noexcept on Windows, use for a few move constructors.

MSVC complains if you use noexcept with no exception handling mode specified (as we do).
This code disables the warning. noexcept on move constructors allows better optimizations
in some cases.
http://en.cppreference.com/w/cpp/language/noexcept_spec

Updates a few common classes' move constructors to use this.

Review-Url: https://codereview.chromium.org/2771643002
Cr-Original-Commit-Position: refs/heads/master@{#458956}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 76aac97386e2788241161420c5e7e0bfee16f88c
diff --git a/tools/gn/value.cc b/tools/gn/value.cc
index b5e21f0..0afbc7d 100644
--- a/tools/gn/value.cc
+++ b/tools/gn/value.cc
@@ -73,7 +73,7 @@
     scope_value_ = other.scope_value_->MakeClosure();
 }
 
-Value::Value(Value&& other) = default;
+Value::Value(Value&& other) noexcept = default;
 
 Value::~Value() {
 }
diff --git a/tools/gn/value.h b/tools/gn/value.h
index 0428818..3ce0117 100644
--- a/tools/gn/value.h
+++ b/tools/gn/value.h
@@ -43,7 +43,7 @@
   Value(const ParseNode* origin, std::unique_ptr<Scope> scope);
 
   Value(const Value& other);
-  Value(Value&& other);
+  Value(Value&& other) noexcept;
   ~Value();
 
   Value& operator=(const Value& other);