Prevent passing of non-POD types to POD-only interfaces.

Reviews: @rec @howardhinnant
So these days, I'm preferring putting the SFINAE code into the template declaration - because it doesn't get in the way of the return type.  What do you think?