Validator procs

Adds support for specifying a more complex validation with a proc or lambda (actually anything which responds to `#call`). Example:

```
class OrdersSearch
   include Parametric::Params
   param :shoe_count, 'Number of shoes', validator: ->(n) { n.even? }, default: 2
 end
```

The block should return true for allowed values and false for non-allowed values.

Opening this PR for discussion of this feature. I'm not sure if the interface is exactly right. I've gone for a separate attribute of the param (`validator`) rather than extending say `match` to take a regexp or a proc. It feels like since `match` and `options` are already separate, `validator` is another sibling of those two. I also wonder if `validator` is the best name.

Let me know what you think!