[WIP] Argument type validation with user-friendly error messages

I'm not sure that JSON requests need to be special-cased here. These error messages apply equally well to form bodies and querystring arguments.