Math library should call prim versions with int arguments

@bbbales2 brought up the issue that there are cases where int arguments get promoted to var rather than double:

I’m guessing this is a problem everywhere as there’s no preference given for int to double over int to var. In fact, if the latter’s templated out, then that’ll get called.

The only way I know to get rid of this is to start making wider use of enable_if and disable_if. This should at least be easier now that they’re built into the langauge.

This came up in a related discussion that involved testing and making sure the prim version of functions even get tested. I think the right solution there is to include our top-level includes as the users will be doing and then test that the right versions get called somehow.