(PUP-514) Extract callable mismatch describer
The code for describing the difference between the argument types given
and the argument types supported was embedded inside the function
dispatcher code. This extracts that out into a module that can be reused
for the closure code to describe a mismatch of argument types.