Prevent access to raw events

This adds a configuration option to backdrop to prevent querying for raw data. It also refactors the validation code, splitting out separate concerns as classes.

Oh, and it fixes a bug where dates like 2013-13-75 were considered valid start_at and end_at values.