Update ICU to 59.1

* Highlights:
  - Emoji 5.0 data (partial; Emoji_Component property not included)
  - CLDR 31.0.1 (http://blog.unicode.org/2017/03/cldr-version-31-released.html)
    UTC and GMT are treated as distinct)
  - New case mapping API for styled text
  - C++ 11 is required
  - char16_t for UChar (UTF-16)
  - Source code is in UTF-8

* Size changes

  common: 10,130,560 => 10,175,056
  android: 6,573,872 => 6,616,864
  iOS: 6,562,352 => 6,605,152

On top of ICU 59.1 from the upstream, the following changes were applied.
See https://chromium.googlesource.com/chromium/deps/icu/+log/chromium/59staging

  - Fix C++ 11 string literal assignment issue (upstream bug: 13192)
  - Fix C4229 warning by MSVC
  - Apply utf32.patch and include unistr.h in fuzzer_util
  - Update ICU data files
  - Fix wpo.patch
  - Apply Google locale patch and locale1.patch
  - update readme
  - Apply breakiterator related patches
  - Apply and update wpo.patch
  - Drop unused patch, apply data.build.win.patch, update README.chromium
  - Add /utf-8 flag for Windows/Visual Studio
  - Update BUILD.gn for UChar, stubdata and apply data_sym.patch
  - use stubdata.cpp instead of stubdata.c in icu.gyp
  - Update icu.gyp* files for v8
  - Update BUILD.gn, apply data.build.patch and vscomp.patch
  - Add new files in ICU 59.1
  - Get a fresh copy of ICU 59.1 from the upstream
  - Update update.sh script

TBR=drott@chromium.org, yangguo@chromium.org
Bug:699469
TEST: layout tests, all unittests, browser tests
Change-Id: Ie1e77323aa0c7f872153680c4deca6471a771a5c
Reviewed-on: https://chromium-review.googlesource.com/505173
Reviewed-by: Jungshik Shin <jshin@chromium.org>
3831 files changed