New Marker features and new transform/validator.

* `Required` now accepts a callable as a default value (the callable gets
  called to provide the scalar value).
* Added `Nullable` marker to accept `None` when validation fails otherwise.
* Added `IgnoreCase` transforming validator to allow for case-insensitive
  matching and selective transform on string values.