Function and NoneOf

Is the common use case for this to be able to pass a predicate `lambda`? If so, this is redundant with the existing field API:
```python
foo = fields.Field(validate=lambda x: len(x) > 8, error='Must be > 8')
```

Granted, I have been considering deprecating the `error` parameter (see #33). However, it seems that adds a third way to apply a user validator with a custom message (the first being a named function that may raise a `ValidationError`).