Allow validation_function to be more dynamic, such as accepting a schema

This will allow validation function to be more generic, you can do something like:::

@validation_function
def with_schema_2(request, schema=None):
   ....

to pass in a schema to validate against