Make ClampedNumeric and CheckedNumeric constexpr

Convert the remaining CheckedNumeric and ClampedNumeric methods to be
fully C++14 constexpr compliant. This also includes the following
dependent changes:
* The constexpr allowed some compile-time optimizations in ClampedAddOp
  and ClampedSubOp, which required restructuring the overflow handling
  to get correct saturation semantics. (New tests cover this.)
* The Clamped*FastAsmOp implementations included redundant saturation
  code, which was removed.

Bug: 612995
Change-Id: I0e0397968712ee06f8beff2f74c638cab01f34bb
Reviewed-on: https://chromium-review.googlesource.com/603127
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Justin Schuh <jschuh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#505494}

CrOS-Libchrome-Original-Commit: 3725ec39917fea4cc350f0abb8dde4552e955054
7 files changed
tree: f5a3e1b195885b3e5b0aa4cad35440e780c00bdd
  1. base/
  2. build/
  3. components/
  4. dbus/
  5. device/
  6. ipc/
  7. mojo/
  8. testing/
  9. third_party/
  10. ui/