DO NOT MERGE: [libc++] Move __clamp_to_integral to <cmath>, and harden against min()/max() macros

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@370900 91177308-0d34-0410-b5e6-96231b3b80d8
(cherry picked from commit 87e6185621d332d2ef8695b94778663380c83bb9)

Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=994957
Bug: http://b/139690488
Change-Id: Ice92a8ea6f675be069a70c5ad1003cf99b4fc474
(cherry picked from commit 82e0483c4a47233ed2f7bab545b32e5ddd474e59)
(cherry picked from commit c2ca4c16d1e26b4a628cf7f3a21ef90daef9116f)
3 files changed