Make the duration warning print the function and line of the callsite.

To do this, the dispatch* functions become macros when
DURATION_WARNING_ENABLED is true.  The macro includes
__PRETTY_FUNCTION__ and __LINE__ so that we get callsite info.