units: fix build on Clang
units: fix build on Clang

(Apparently Clang instantiates templates a bit different
from GCC; in any case, this method is more robust.  It
makes it impossible (or harder) for the compiler to try to resolve
the overloading in the decltype when it's an invalid instantiation
leading to infinite template recursion.)

elidupree/Lasercake,elidupree/Lasercake,idupree/Lasercake,idupree/Lasercake,idupree/Lasercake,idupree/Lasercake,Lasercake/Lasercake,elidupree/Lasercake,elidupree/Lasercake,elidupree/Lasercake,Lasercake/Lasercake,elidupree/Lasercake,idupree/Lasercake,elidupree/Lasercake,idupree/Lasercake,idupree/Lasercake,Lasercake/Lasercake,Lasercake/Lasercake,Lasercake/Lasercake