refactor: move invalid header/param exceptions

Format the exceptions that were located in request.py and move them
to exceptions.py. Standardise the message formatting to include the
param/header that is problematic in the description message.

Fixes #194