Fix the Clang warning by a better approach: use template specialization

* This adds some minor duplication of trivial code
  but give us a cleaner compile-time check.

Sorry, the previous approach reveals to be less than optimal: older versions of Clang do no know `-Wtautological-constant-out-of-range-compare` and warn gently about it.
Also, this seems a really good case for template specialization.

Could you just check I did it right, like declaring it in utf-decl.hh and implementing it just after the generic version in utf.hh?

https://github.com/eregon/mozart2/compare/mozart:7064aef...eregon:fix_clang_warning_tautological?expand=1&w=1 is a much more readable diff from the old master.