Update ICU to 60.1 + local patches

What's new in ICU 60.1:
  - Unicode 10.0 (including Emoji 5.0)
  - CLDR 32 (locale data; http://cldr.unicode.org/index/downloads/cldr-32 )
  - Smaller rule file size for BreakIterator (no more reverse rules)
  - A new number formatting API
  - Malformed UTF-8 sequences are handled per W3C Encoding Standard
  - See http://site.icu-project.org/download/60 for more details.

In addition, the following changes are made:

* Add more locale variants for en,fr,de,it,pt,nl,ru,ar

* Add the minimum locale data for Osage and Chakma

* Apply locale data patches (Google and Chromium)

* Apply build-related and break iterator patches:
  wpo.patch
  vscomp.patch
  data.build.win.patch
  data_symb.patch
  cjdict.patch
  khmer-dictbe.patch
  wordbrk.patch
  patches/data.build.patch

* Update BUILD.gn and gyp files.

* Data file size (25 ~ 130kB smaller than the latest 59.1)
  android/icudtl.dat 6499904
  common/icudtl.dat 10170896
  ios/icudtl.dat 6486240

The update steps are recorded in
https://chromium.googlesource.com/chromium/deps/icu/+log/f88520f..1034c7e5 .


Bug: 766816
Test: None (DEPS roll CL will have test specified).
Change-Id: I9144bb37464eec1f282f40f9f2d28b6306511083
Reviewed-on: https://chromium-review.googlesource.com/756237
Reviewed-by: Mark Mentovai <mark@chromium.org>
diff --git a/source/common/bytestream.cpp b/source/common/bytestream.cpp
index bfd7bde..0d0e4dd 100644
--- a/source/common/bytestream.cpp
+++ b/source/common/bytestream.cpp
@@ -45,6 +45,12 @@
   if (n <= 0) {
     return;
   }
+  if (n > (INT32_MAX - appended_)) {
+    // TODO: Report as integer overflow, not merely buffer overflow.
+    appended_ = INT32_MAX;
+    overflowed_ = TRUE;
+    return;
+  }
   appended_ += n;
   int32_t available = capacity_ - size_;
   if (n > available) {