Add option to redact data from exceptions
Hello!
It is useful to be able to redact data values in production environments. This prevents PII and other sensitive data from reaching logging and error reporting systems. It's especially useful for response validation error handling, when the server will typically respond with an HTTP 500 and a generic error message, and an exception reporting tool will receive the raw exception.
This PR adds an option to do this, and modifies all of the exception classes which contain a value to support redacting the value. I also refactored the Options class to pass it around throughout the validation code instead of destructuring it into the individual options it contains. This is a bit more flexible if more options are needed in the future.