Add custom JSON parameter validation

Adds support for required traits and ensuring that parameter values are
the correct type as specified in the schema.