SkTypes: use constexpr when appropriate

motivation: https://codereview.chromium.org/2000853003

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2004073002

Review-Url: https://codereview.chromium.org/2004073002
diff --git a/include/core/SkTypes.h b/include/core/SkTypes.h
index 6793e4c..13b662a 100644
--- a/include/core/SkTypes.h
+++ b/include/core/SkTypes.h
@@ -369,7 +369,7 @@
 
 /** Faster than SkToBool for integral conditions. Returns 0 or 1
 */
-static inline int Sk32ToBool(uint32_t n) {
+static constexpr int Sk32ToBool(uint32_t n) {
     return (n | (0-n)) >> 31;
 }
 
@@ -408,11 +408,11 @@
     return a;
 }
 
-template <typename T> const T& SkTMin(const T& a, const T& b) {
+template <typename T> constexpr const T& SkTMin(const T& a, const T& b) {
     return (a < b) ? a : b;
 }
 
-template <typename T> const T& SkTMax(const T& a, const T& b) {
+template <typename T> constexpr const T& SkTMax(const T& a, const T& b) {
     return (b < a) ? a : b;
 }
 
@@ -428,7 +428,7 @@
 }
 
 /** Returns value pinned between min and max, inclusively. */
-template <typename T> static inline const T& SkTPin(const T& value, const T& min, const T& max) {
+template <typename T> static constexpr const T& SkTPin(const T& value, const T& min, const T& max) {
     return SkTMax(SkTMin(value, max), min);
 }