Changed implementation of is<T>, using function overloading instead of class specialization.