ICU-21104 Add build bots using Ubuntu 18.04 with C++14

This change adds an Azure build bot that builds using Clang on Ubuntu
18.04 with C++14 in debug mode, and a build bot on Travis that builds
using GCC with C++14.

Note: The Ubuntu 18.04 image doesn't have HarfBuzz, so we need to disable
building the layout engine.
diff --git a/.ci-builds/.azure-pipelines.yml b/.ci-builds/.azure-pipelines.yml
index c992e14..d614dba 100644
--- a/.ci-builds/.azure-pipelines.yml
+++ b/.ci-builds/.azure-pipelines.yml
@@ -6,7 +6,7 @@
   displayName: 'J: Linux OpenJDK (Ubuntu 16.04)'
   timeoutInMinutes: 20
   pool:
-    vmImage: 'Ubuntu 16.04'
+    vmImage: 'ubuntu-16.04'
     demands: ant
   steps:
     - checkout: self
@@ -26,7 +26,7 @@
   displayName: 'C: Linux Clang (Ubuntu 16.04)'
   timeoutInMinutes: 30
   pool:
-    vmImage: 'Ubuntu 16.04'
+    vmImage: 'ubuntu-16.04'
   steps:
     - checkout: self
       lfs: true
@@ -42,7 +42,7 @@
   displayName: 'C: Linux Clang WarningsAsErrors (Ubuntu 16.04)'
   timeoutInMinutes: 30
   pool:
-    vmImage: 'Ubuntu 16.04'
+    vmImage: 'ubuntu-16.04'
   steps:
     - checkout: self
       lfs: true
@@ -58,7 +58,7 @@
   displayName: 'C: Linux Clang DataFilter (Ubuntu 16.04)'
   timeoutInMinutes: 30
   pool:
-    vmImage: 'Ubuntu 16.04'
+    vmImage: 'ubuntu-16.04'
   steps:
     - checkout: self
       lfs: true
@@ -74,6 +74,22 @@
         CC: clang
         CXX: clang++
 #-------------------------------------------------------------------------
+- job: ICU4C_Clang_Cpp14_Debug_Ubuntu_1804
+  displayName: 'C: Linux Clang C++14 Debug (Ubuntu 18.04)'
+  timeoutInMinutes: 30
+  pool:
+    vmImage: 'ubuntu-18.04'
+  steps:
+    - checkout: self
+      lfs: true
+      fetchDepth: 1
+    - script: |
+        export CXXFLAGS="-std=c++14 -Winvalid-constexpr" && cd icu4c/source && ./runConfigureICU --enable-debug --disable-release Linux --disable-layout --disable-layoutex && make -j2 check
+      displayName: 'Build and Test C++14'
+      env:
+        CC: clang
+        CXX: clang++
+#-------------------------------------------------------------------------
 - job: ICU4C_MSVC_x64_Release_Distrelease
   displayName: 'C: MSVC 64-bit Release (VS 2017) + Distrelease'
   timeoutInMinutes: 30
diff --git a/.travis.yml b/.travis.yml
index c068b5a..e2df4e2 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -67,7 +67,7 @@
     #
     # Invokes test/hdrtst to check public headers compliance.
 
-    - name: "c: linux gcc"
+    - name: "c: linux gcc (debug)"
       dist:     xenial
       language: cpp
       compiler: gcc
@@ -118,10 +118,27 @@
       # TODO(ICU-20301): Change this back to the default Python version 3.
       script:   cd icu4c/source && PYTHON=python2 ./runConfigureICU MacOSX && make -j2 check
 
+    # out of source gcc 8 build with c++14, runs icuinfo
+    - name: "c: linux gcc 8 c++14"
+      dist:     bionic
+      language: cpp
+      addons:
+         apt:
+           packages:
+             - g++-8
+      env: PREFIX=/tmp/icu-prefix CC=gcc-8 CXX=g++-8 CXXFLAGS="-std=c++14"
+      before_script:
+        - mkdir build && cd build
+        - ../icu4c/source/runConfigureICU Linux --disable-layout --disable-layoutex --prefix="${PREFIX}"
+        - make -j2
+      script:
+        - make -j2 check && make install
+        - cd "${PREFIX}/bin" && LD_LIBRARY_PATH=../lib ./icuinfo
+
     # Clang Linux with address sanitizer.
     # Note - the 'sudo: true' option forces Travis to use a Virtual machine on GCE instead of
     #        a Container on EC2 or Packet. Asan builds of ICU fail otherwise.
-    - name: "c: linux asan"
+    - name: "c: linux asan (debug)"
       language: cpp
       env:
         - CPPFLAGS="-fsanitize=address"
@@ -140,7 +157,7 @@
 
     # Clang Linux with thread sanitizer.
     #
-    - name: "c: linux tsan"
+    - name: "c: linux tsan (debug)"
       language: cpp
       env:
           - INTLTEST_OPTS="utility/MultithreadTest"