Added two new exceptions
BadRequestException that allows changing the HTTP code returned for an exception (in both controller & API).
This allows us to avoid certain failures caused by invalid input and correctly report the error, w/o triggering a 500 HTTP code (that could potentially also create an email alert?).
Used in ScheduledReports API to check for multiple periods.