Handles invalid %-encoding errors gracefully.

This commit prevents ArgumentErrors as raised by URI's
decode_wwww_form_component method from bubbling up and entering the
exception notification process.  Every case of this I've ever come
across has been bot traffic trying to exploit various PHP bugs, so I
think it's safe to log and identify later if necessary, rather than
being constantly notified every time a bot makes a bad request.
Enhanced error logging, Bad Request event refactor.

Got rid of the backtrace in the BadRequestParametersError, ensured that
400's are logged as such in the request log.